我正在尝试调用另一个js文件中另一个控制器内的控制器内的函数。
我尝试了$broadcast
和$emit
,但我认为它仅适用于同一个文件。
我有一个名为videoWidgetController
的控制器,它有一个名为clickVideoWidgetListItemFromDOM
的函数。
我需要从另一个名为videoController
的控制器中调用它。
在此文件中,我在data-ng-click="clickVideoWidgetListItemFromDOM(video, $index)"
videoController
$scope.clickVideoWidgetListItem = function(video, index) {
$scope.$emit("myEvent"); *** didn't work for me ***
$rootScope.$broadcast("myEvent", {video: video,index: index }); *** didn't work for me ***
};
videoWidgetController
$scope.$on("myEvent", function (event, args) {
alert(1);
console.log(args);
$scope.clickVideoWidgetListItemFromDOM();
});
我正如this link中提到的那样尝试,但无法得到解决方案。
我搜索了很多,但不幸的是仍然存在同样的问题。
答案 0 :(得分:0)
为了进行广播发射数据传输,必须满足以下条件
该事件将从父控制器广播,并且 将从子控制器中侦听事件。广播方法ID 用于将数据从父母转移到孩子。
如果此层次结构不起作用,您可以按services传输数据。