我是棱角分明的新手,必须修复我同事的错误。我发现这个工厂有功能。如何设置一个调用所有模块的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() {
...........
}
}
答案 0 :(得分:2)
答案 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