2016-05-11 13 views
2

を実行する私は2個のmd-tabタグmd-tabsタグ持っている:私は(メニューで)それらをクリックして、適切にそれらを切り替えることができますどの角度材料MD-タブをクリックし

 <md-tabs id="tabs" class="md-accent" md-align-tabs="top" md-dynamic-height> 
      <md-tab id="tab1"> 
       <md-tab-label>Tab 1</md-tab-label> 
       <md-tab-body> 
        <div ng-include="'tab1.html'"></div> 
       </md-tab-body> 
      </md-tab> 
      <md-tab id="tab2"> 
       <md-tab-label>Tab 2</md-tab-label> 
        <md-tab-body> 
         <div ng-include="'tab2.html'"></div> 
        </md-tab-body> 
      </md-tab> 
     </md-tabs> 

をしかし私が欲しいですたとえばtab1をクリックすることができます。内部はtab2にあります。私はAJAXで提出し、successtab1に自動的に切り替わりたいと思います。

、私は多くのことを試してみた、私はmd-tabsから属性selectedIndexを設定して、私はtruemd-tabの属性md-activeを設定しました。私はまた、イベントクリック(select()から$mdTabsCtrl)によって起動されたと思われるメソッドを呼び出そうとしました。しかし、明らかにこれの何も働いていません。

カスタムバットームの1つをクリックすると、特定のタブに切り替えるにはどうすればよいですか?

+0

[this](http://codepen.io/anon/pen/WrMxWo)はどういう意味ですか?タブ1内のボタンマップをクリックすると、自動的にタブ2に切り替わります。 – troig

+0

それはそれですが、それは私のコードでは機能しませんが、それでも理由はありません。 – Drumnbass

+0

おそらく、問題を再現するためのプランナーを作成しようとすることができます、それはあなたを助けてくれるでしょう。 – troig

答えて

2

成功ブロックのselectedIndexの値を直接変更することができます(移動するタブのselectedIndex値)。

あなたが行きたいタブのselectedIndexの値を入れる方法では、特定のタブに移動したい場合には

...
がここTAB1に行くためには、このメソッドを呼び出す方法

$scope.firstTab = function() { 
    $scope.selectedIndex = 0; 
}; 

ですajax呼び出しを成功させると、常に最初のタブに移動します。 は、そして、ここですべてのクリックした後、次のタブに移動するため、このたびの作品

$scope.max = (number of tabs) - 1; 
$scope.nextTab = function() { 
    var index = ($scope.selectedIndex == $scope.max) ? 0 : $scope.selectedIndex + 1; 
    $scope.selectedIndex = index; 
}; 
+0

Rakeschand、 'vm'とは何ですか? – Drumnbass

+0

Btw、私は本当に2つのタブを持っていない、それはちょうど例だった、実際に私は6つのタブがあります。 – Drumnbass

+1

6つのタブに問題はありません。最大5となりますので、$ scopeアプローチを使用していると思いますので、VMについて心配しないでください。$ scope.maxとして考えてください。 – Rakeschand

2

方法です:angular.element("md-tab md-tab-item")[0].click()

注:あなたがある場合は$タイムアウトに(すなわちのsetTimeoutを)これをラップする必要があります角度コントローラー内の関数から呼び出すto avoid apply error.

関連する問題