空白で始まる配列からタブを生成する動的タブセットがあります。配列に新しい項目を追加すると、新しいタブとして表示されます。最後に追加したタブをアクティブなものにしたい。私は、配列に項目を追加するたびにアクティブなインデックスを設定角度UIブートストラップを使用して動的に作成されたタブでアクティブなタブを設定する
HTML:
<uib-tabset active="activeTabIndex">
<uib-tab ng-repeat="tab in tabs" heading="{{tab.title}}">Some content</uib-tab>
</uib-tabset>
はJavaScript:
$scope.activeTabIndex = 0
$scope.tabs = [];
$scope.addTab = function() {
var newTab = { title: 'Tab ' + ($scope.tabs.length + 1) };
$scope.tabs.push(newTab);
$scope.activeTabIndex = ($scope.tabs.length - 1);
console.log($scope.activeTabIndex);
};
ここでは、デモの完全なソースコードのためのPlunkです:https://plnkr.co/edit/TX6ek4R62AfM2zUXcoC3?p=preview
問題は、奇数個のタブのみで動作しているようです。ここで私が何を意味するかです:
初期ロードでは、それは次のようになります。
私は新しいタブを追加した後、それは正しくアクティブなものを示しています
Iを別のものを追加すると何も選択されず、activeTabIndex変数は未定義になります:
そして、それは再び作業を開始する第三1上:
そうでもアクティブインデックス番号(0、2)のために、それが正常に動作します。しかし、何とかAcitve Index:1の代わりに空白を表示し、アクティブなタブを設定しません。変数をコンソールに書き込むと、すべての値が正しく表示されます。
どのようなヘルプ/ポインター/アイデアも大歓迎です。
ありがとうございました。 docsによると
をありがとうございました。タイムアウトはトリックを行うようだが、なぜそれがそれなしで半分の時間に動作するのか理解できない。その一見奇妙な行動に関するコメント? –
良い質問ですが、なぜ奇妙なタブのために動作するのか混乱してしまいます。 –
私はGitHubでこの質問をしました。プロジェクトのPMは、同様の問題が報告されており、動的タブをサポートしていないと回答しました。タイムアウトの内側にインデックスを設定するのが正式に推奨される解決策です。だから私はそれを答えとして受け入れます。完全性のために、私は応答を得たスレッドです:https://github.com/angular-ui/bootstrap/issues/611 –