【发布时间】:2015-04-16 16:00:28
【问题描述】:
我正在试图弄清楚如何让子指令与它的父指令通信
我基本上有这个 html 标记
<myPanel>
<myData dataId={{dataId}}></myData>
</myPanel>
在 myData 指令中,如果没有可用数据,我想隐藏 myPanel。
在我尝试过的 myData 指令控制器中
$scope.$emit('HideParent');
在我尝试过的 myPanel 控制器中
$scope.$on('HideParent', function () { $scope.hide = true; });
还有
$scope.$watch('HideParent', function () { if (value) { $scope.hide = true; }});
在任何一种情况下,myPanel 指令都不会收到 $emit
【问题讨论】:
-
而不是使用 $emit/$on。在父指令上使用控制器
-
阅读指令指南中关于communication between directives的部分
-
你可以试试 $rootscope.$broadcast('HideParent');
标签: angularjs angularjs-directive emit