繁体   English   中英

我们可以从AngularJS中另一个文件的另一个控制器中调用该控制器内部的函数吗?

[英]Can we call the function inside the controller from another controller of another file in AngularJS?

我试图在另一个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();
});

我正在尝试按此链接中所述进行操作,但无法获得解决方案。

我搜索了很多,但不幸的是仍然遇到了同样的问题。

为了进行广播发射数据传输,必须满足以下条件

该事件将从父控制器广播,而该事件将从子控制器监听。 广播方法ID,用于将数据从父级传输到子级。

如果此层次结构不起作用,则可以通过services传输数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM