【发布时间】:2014-07-04 00:00:41
【问题描述】:
我有一个带有一些样板 html 的指令,包括一个菜单切换按钮。
在该指令中(转入)是许多不同的嵌套指令之一,每个指令都有自己的菜单。
外部指令有一个独立的范围,而内部指令没有指定范围。
当我单击外部指令上的菜单切换按钮时,我希望能够显示/隐藏内部指令中包含的菜单。
如何将切换值的变化从外部指令传递到内部指令?
我尝试在外部指令中广播更改并在内部指令中监听它,但这似乎不起作用。
我尝试在内部指令中要求外部指令 - 我可以在那里看到切换的值,但看不到观察它的变化的方法。
这是来自外部指令的链接函数:
link: function($scope, $element, $attrs){
var menuCollapsed = true;
$scope.toggleMenu = function(){
menuCollapsed = !menuCollapsed;
console.log("ToggleMenu",menuCollapsed);
$scope.$broadcast('menuCollapsed', menuCollapsed);
};
}
内部指令包含以下内容:
link: function($scope, $element, $attrs, widgetCtrl){
$scope.$on('menuCollapsed', function(event, args){
console.log('menuCollapsed', event, args);
});
显示外部指令中的日志,但不显示内部指令中的日志。
【问题讨论】:
-
请提供小提琴或 plunkr
标签: javascript angularjs