Angular JS - 如何调用模块的函数?

时间:2014-09-11 09:09:29

标签: javascript angularjs

我是棱角分明的新手,必须修复我同事的错误。我发现这个工厂有功能。如何设置一个调用所有模块的reset-function的reset_All函数?

.factory('MyCollection', function() {
    return {

        resetAll: function(projectId) {

          // call the reset-function of SomeController

        }
    }
})



.controller('SomeController', function($scope, a) {


    $scope.reset = function() {
        ...........
    }

 }

2 个答案:

答案 0 :(得分:2)

你需要在<{1}} 依赖,所以你可以注入它:

MyCollection

这是要阅读的documentation

答案 1 :(得分:2)

如果您想防止不同模块的紧密耦合,您可以广播一个事件并将其捕获到相应的控制器中:

.factory('MyCollection', ['$rootScope', function($rootScope) {
    return {
        resetAll: function(projectId) {
            $rootScope.$broadcast('reset');
        }
    };
}]);

.controller('SomeController', ['$scope', 'a', function($scope, a) {
    $scope.reset = function() {
        // do something here
    }; 

    $scope.$on('reset', function() {
        $scope.reset();
    });
}]);

要了解Angular的事件,请查看Understanding Angular’s $scope and $rootScope event system $emit, $broadcast and $on