Ich verwende angular-material
Tabs in meiner App. Ich muss durch Tabs wechseln md-select
dynamisch durch Controller-Funktion. Dies ist mein CodeNächste Registerkarte auf "enter" - AngularMaterial
Ausblick:
<md-tabs md-border-bottom md-selected="selectedIndex">
<md-tab ng-repeat="tab in tabs" label="Label {{$index + 1}}"></md-tab>
</md-tabs>
Und das ist, wie ich den Wert mit md-select
$scope.changeTab = function(){
$scope.selectedIndex = ($scope.selectedIndex + 1) % $scope.tabs.length;
}
Jetzt
1. gibt es zwei Fälle modelliert am Wechsel:
Wenn ich crea te eine Schaltfläche wie <button type='button' ng-click='changeTab()'>Button</button>
, auf diese Schaltfläche klicken, funktioniert gut und ich kann erfolgreich die Registerkarten klicken bewegen onthis button
2.
Infact ich zum nächsten Reiter verschieben müssen, wenn der Benutzer enter
trifft. Also was ich dafür gemacht habe, ist
$document.bind('keypress', function (e) {
if (e.which == 13) {
$scope.selectedIndex = ($scope.selectedIndex + 1) % $scope.tabs.length;
}
});
Aber das zeigt zufälliges Verhalten. Manchmal bewegt es sich zum nächsten Tab und manchmal nicht. Ich habe verschiedene Arten von Eingabefeldern auf jeder Registerkarte. Hitting Enter funktioniert nur für die Tabs, die input of type text
haben. Und für alles andere musste ich irgendwo klicken, nachdem ich Enter gedrückt hatte, dann bewegt es sich zum nächsten Tab. Ich brauche es, um zum nächsten Tab zu wechseln, wenn der Benutzer auf Enter klickt. Was mache ich falsch oder fehlt?
Dank :) es funktionierte –