我想從一個角度組件的控制器中調用一個功能到另一個組件的控制器。我發現this的答案,但控制器的定義與我在後續教程中顯示的不同,所以我很困惑我應該如何引用組件和模板。定義角度控制器和組件
這裏是我目前根據官方公佈的角度教程定義我的控制器之一
angular.
module('moduleName').
component('firstComponent', {
templateUrl: 'url/to/template',
controller: function FirstController($scope) {
//I want to call a function in SecondController here
}
});
//in another component file
angular.
module('moduleName').
component('secondComponent', {
templateUrl: 'url/to/template',
controller: function SecondController($scope) {
//function here which will be called
}
});
說我重新構造他們像在例子中,我上面鏈接...
var app= angular.module("myApp",[]);
app.controller('One', ['$scope', '$rootScope'
function($scope) {
$rootScope.$on("CallParentMethod", function(){
$scope.parentmethod();
});
$scope.parentmethod = function() {
// task
}
}
]);
//in another file
var app= angular.module("myApp",[]);
app.controller('two', ['$scope', '$rootScope'
function($scope) {
$scope.childmethod = function() {
$rootScope.$emit("CallParentMethod", {});
}
}
]);
我應該如何引用它們所屬的每個控制器的組件以及它們各自的模板?我試圖像上面鏈接的例子那樣寫它們,但沒有發生任何事情。我沒有得到任何錯誤,但從字面上看並沒有發生任何事情。該頁面上沒有顯示任何內容。它試圖寫入控制檯,但沒有出現。
可以添加你的HTML也? – Aravind
此時確實沒有HTML。我添加了一個警報函數來測試,以及控制檯日誌記錄。當我使用控制檯日誌(在「重組」之前)消息顯示。嘗試重組後,什麼都沒有發生。我只是試圖讓控制器互相「交談」......或者自己爲此事 – user1852176