簡體   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