Empêcher l'événement de changement d'onglet dans le matériau angulaire md-tab
Est-il possible d'empêcher le changement d'onglet dans la directive md-tabs ou md-tab d'angular-material? J'utilise la directive md-on-select pour exécuter une fonction une fois qu'un onglet est cliqué et définir la valeur md-active sur false pour un onglet spécifique. Mais le changement d'onglet se produit toujours et je ne semble pas pouvoir l'empêcher :
<md-content>
<md-tabs md-dynamic-height md-border-bottom>
<md-tab label="Tab1" md-active="ctrl.selectTab1" md-on-select="ctrl.tabClicked('Tab1')">
<md-content>
myContent
</md-content>
</md-tab>
<md-tab label="Tab2" md-active="ctrl.selectTab2" md-on-select="ctrl.tabClicked('Tab2')">
<md-content>
mycontent
</md-content>
</md-tab>
</md-tabs>
</md-content>
Dans la fonction contrôleur j'ai
function tabClicked(tab) {
switch (tab) {
case 'Tab1':
vm.selectTab1 = true;
vm.selectTab2 = false;
break;
case 'Tab2':
vm.selectTab1 = false;
vm.selectTab2 = true;
break;
}
}
Solution du problème
Ceci est un exemple mais je ne sais pas si c'est ce que vous voulez
Exemple
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<md-content>
<md-tabs md-dynamic-height md-border-bottom md-selected="selected" >
<md-tab label="Tab1" ng-click="tabClicked('Tab1')">
<md-content>
myContent 1
</md-content>
</md-tab>
<md-tab label="Tab2" ng-click="tabClicked('Tab2')">
<md-content>
mycontent 2
</md-content>
</md-tab>
</md-tabs>
</md-content>
</div>
angular.module("myApp",['ngMaterial']).controller("MyCtrl", function($scope) {
$scope.selected = 0
$scope.tabClicked = function(tab) {
switch (tab) {
case 'Tab1':
$scope.selected = 0
break;
case 'Tab2':
$scope.selected = 0
break;
}
}
});
j'espère que ça t'aidera
Commentaires
Enregistrer un commentaire