我需要在Angular js中的另一个控制器中调用函数。如何可能的方式请提前帮助我
代码:
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 } } ]);
控制器之间的通信通过$emit+ $on/ $broadcast+ $on方法完成。
$emit
$on
$broadcast
因此,在您的情况下,您想在Controller“Two”中调用Controller“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被调用时,您可以发送任何数据作为第二个参数。
$rootScope.$emit