参见英文答案 >
Can one controller call another?13个答案>
How do I inject a controller into another controller in AngularJS7答案我需要调用函数在另一个控制器在角js.How它是可能的方式请帮助我提前感谢
代码:
app.controller('One',['$scope',function($scope) { $scope.parentmethod = function() { // task } } ]); app.controller('two',function($scope) { $scope.childmethod = function() { // Here i want to call parentmethod of One controller } } ]);
控制器之间的通信通过$ emit $ on / $ broadcast $ on方法完成。
所以在你的情况下,你想调用控制器“一”控制器“二”内的方法,正确的方法做到这一点:
app.controller('One','$rootScope' function($scope) { $rootScope.$on("CallParentMethod",function(){ $scope.parentmethod(); }); $scope.parentmethod = function() { // task } } ]); app.controller('two','$rootScope' function($scope) { $scope.childmethod = function() { $rootScope.$emit("CallParentMethod",{}); } } ]);
当$ rootScope。$ emit被调用时,你可以发送任何数据作为第二个参数。