Javascript 防止“角度材质md”选项卡中的选项卡更改事件

Javascript 防止“角度材质md”选项卡中的选项卡更改事件,javascript,angularjs,tabs,angular-material,Javascript,Angularjs,Tabs,Angular Material,是否可以防止角度材质的md tabs或md tab指令中的tab更改? 单击选项卡后,我使用md on select指令执行函数,并将特定选项卡的md active值设置为false。但tab切换仍在发生,我似乎无法阻止它: <md-content> <md-tabs md-dynamic-height md-border-bottom> <md-tab label="Tab1" md-active="ctrl.selectT

是否可以防止角度材质的md tabs或md tab指令中的tab更改? 单击选项卡后,我使用md on select指令执行函数,并将特定选项卡的md active值设置为false。但tab切换仍在发生,我似乎无法阻止它:

<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>

这是一个例子,但我不确定这是否是你想要的


我希望这能帮助你

我不明白你的问题。是否要“禁用”某个选项卡?如果要禁用相同的选项卡,可以使用ng disabled tag而不是md active=“false”否,我要阻止更改选项卡。示例:最初,我在第一个选项卡页面上,单击第二个选项卡,我不想更改为第二个选项卡,而是停留在第一个选项卡上。因此,如果要阻止选项卡上的单击处理程序,我认为应该使用“ng disabled”。为什么不呢?我不想禁用标签。我只是不想在点击时切换到该选项卡。情况是,在第一个选项卡中,我可能有未保存的更改。当用户单击第二个选项卡时,我会显示一条确认消息。如果用户单击“取消”,我不想切换到第二个选项卡,而是停留在第一个选项卡上。否则,未保存的更改将丢失。谢谢。我昨天也找到了这个解决方案:)这并没有阻止md选项卡移动到下一个选项卡。它实际上会移动,然后返回到上一个。我想知道是否有办法阻止md标签移动。这将有助于,比方说,在移动之前验证数据。
function tabClicked(tab) {
        switch (tab) {
            case 'Tab1':
                vm.selectTab1 = true;
                vm.selectTab2 = false;
                break;
            case 'Tab2':
                vm.selectTab1 = false;
                vm.selectTab2 = true;
                break;
        }
}
<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;
    }
  }

});