我在每个控制器中都有以下工作。
$scope.$on('$routeChangeStart', function(event){
$scope.closeitup();
});
在每个控制器中,我都有一个closeitup()
函数可以执行不同的操作,但名称相同。
如何将上述$scope.$on
移动到将被触发的服务并调用控制器closeitup()
希望问题足够清楚
答案 0 :(得分:0)
myModule.factory('closeitupOnRouteChangeStart', function() {
return function($scope) {
$scope.$on('$routeChangeStart', function() {
$scope.closeitup();
});
};
});
并在控制器中:
myModule.controller('SomeCtrl', function($scope, closeitupOnRouteChangeStart) {
closeitupOnRouteChangeStart($scope);
});
我不确定这会使代码更清晰,更具可读性。
答案 1 :(得分:0)
使用$ controller继承怎么样?
app.controller('ParentCtrl ', function($scope) {
$scope.$on('$routeChangeStart', function(event){
$scope.closeitup();
});
});
app.controller('ChildCtrl', function($scope, $controller) {
$controller('ParentCtrl', {$scope: $scope});
});
我自己没有尝试过,如果这种做法具有误导性,那就很抱歉。