一尘不染

如何从angularjs中的另一个控制器调用函数?

angularjs

我需要在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
        }
    }
]);

阅读 460

收藏
2020-07-04

共1个答案

一尘不染

控制器之间的通信通过$emit+ $on/ $broadcast+ $on方法完成。

因此,在您的情况下,您想在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被调用时,您可以发送任何数据作为第二个参数。

2020-07-04