如何在AngularJS中从另一个控制器调用函数?
如何在AngularJS中从另一个控制器调用函数?
这个问题已经有答案了:
我需要在AngularJS中的另一个控制器中调用一个函数。 我怎么做?
代码:
app.controller('One', ['$scope', function($scope) { $scope.parentmethod = function() { // task } } ]); app.controller('two', ['$scope', function($scope) { $scope.childmethod = function() { // Here i want to call parentmethod of One controller } } ]);
admin 更改状态以发布 2023年5月20日
控制器之间的通信是通过$emit
+ $on
/ $broadcast
+ $on
方法完成的。
所以在您的情况下,您想在控制器"Two"内调用控制器"One"的方法,正确的方法是:
app.controller('One', ['$scope', '$rootScope' function($scope) { $rootScope.$on("CallParentMethod", function(){ $scope.parentmethod(); }); $scope.parentmethod = function() { // task } } ]); app.controller('two', ['$scope', '$rootScope' function($scope) { $scope.childmethod = function() { $rootScope.$emit("CallParentMethod", {}); } } ]);
调用$rootScope.$emit
时,您可以将任何数据作为第二个参数发送。