我正在使用这里Tabs (ui.bootstrap.tabs)
描述的控制\指令。该控件创建它自己的控制器,该控制器设置活动选项卡:
.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();
};
Tabset 子选项卡控件(子元素)在单击时可以触发父级的选择功能。
.directive('tab', ['$parse', function($parse) {
return {
require: '^tabset',
scope: {
onSelect: '&select',
我有我的自定义控制器向上的 DOM 需要触发select
功能TabsetController
以设置第一个选项卡处于活动状态。我读过我可以使用事件广播,但我无法修改TabsetController
绑定事件侦听器,所以这似乎不是一个可行的选择。有什么建议么?
编辑:
请参阅 Plunker 以获得更好的理解 -在这里。