在所有控制器中注入服务

时间:2015-08-28 08:32:13

标签: angularjs dependency-injection

我想使用https://github.com/alexcrack/angular-ui-notification进行通知。我在所有控制器中都需要它们。是否可以在我的所有控制器中注入“通知”(或“#log;'或其他什么内容”)?

1 个答案:

答案 0 :(得分:3)

我认为您可以通过让控制器继承公共基本控制器来实现。这样的事情可能有用:

angular.module('extending', [])

.controller('baseController', function(someService) {
   this.someService = someService;
})

.controller('extendedController', function($scope, $controller) {
  angular.extend(this, $controller('baseController', { $scope: $scope }));

   this.alert = this.someService.alert;
})

.service('someService', function() {
  this.alert = function() {
    window.alert('alert some service');
  };
});

HTML

  <body>
    <div ng-controller="extendedController as ex">
        <button ng-click="ex.alert()">Alert</button>
    </div>
  </body>

plunker上的示例。关于SO的Related帖子。 AngularjS extend doc。