ある角度コンポーネントのコントローラ内から別のコンポーネントのコントローラに関数を呼び出そうとしています。私は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