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

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"