Внедрить сервис во все контроллеры

0

Я хочу использовать https://github.com/alexcrack/angular-ui-notification для уведомлений. Мне нужны они во всех моих контроллерах. Можно ли ввести "Уведомление" (или "$ log" или что-то еще) во всех моих контроллерах?

  • 0
    Вам просто нужно загрузить службу Notification в свой контроллер как зависимость.
Теги:
dependency-injection

1 ответ

2
Лучший ответ

Я думаю, вы могли бы, позволив вашим контроллерам наследовать от общего базового контролера. Что-то вроде этого может работать:

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>

Пример по плункеру. Похожие сообщения на SO. AngularjS расширить док.

  • 0
    Большое спасибо! Ваш ответ очень полезен
  • 0
    Ничего себе, не знал о extend , +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню