ここでTabs (ui.bootstrap.tabs)
説明されている control\directiveを使用しています。コントロールは、アクティブなタブを設定する独自のコントローラーを作成します。
.controller('TabsetController', ['$scope', function TabsetCtrl($scope) {
var ctrl = this,
tabs = ctrl.tabs = $scope.tabs = [];
ctrl.select = function(selectedTab) {
angular.forEach(tabs, function(tab) {
if (tab.active && tab !== selectedTab) {
tab.active = false;
tab.onDeselect();
}
});
selectedTab.active = true;
selectedTab.onSelect();
};
タブセットの子タブ コントロール (子要素) をクリックすると、親の選択機能をトリガーできます。
.directive('tab', ['$parse', function($parse) {
return {
require: '^tabset',
scope: {
onSelect: '&select',
最初のタブをアクティブに設定するためにselect
関数をトリガーする必要があるDOMの上にカスタムコントローラーがあります。TabsetController
イベントブロードキャストを使用できることを読みましたが、TabsetController
イベントリスナーをバインドするように変更できないため、これは実行可能なオプションではないようです。助言がありますか?
編集:
理解を深めるために、Plunker を参照してください。