AngularJS: внедрить зависимость в каждый контроллер - PullRequest
0 голосов
/ 10 сентября 2018

Предположим, у меня есть огромное веб-приложение (которое использует AngularJS) с большим количеством контроллеров. Есть ли способ внедрить $log сервис в каждом контроллере ? Чтобы быть более понятным, я хочу написать что-то вроде этого:

.config(function($log) {
    allMyControllers.inject($log);
})

вместо

.controller('Controller1', function($log) {...})
.controller('Controller2', function($log) {...})
.controller('Controller3', function($log) {...})
.controller('Controller4', function($log) {...})

1 Ответ

0 голосов
/ 11 сентября 2018

Возможная вещь, которую вы можете сделать, это создать контроллер, который имеет все необходимые зависимости, и сделать его базовым контроллером, а другие контроллеры могут расширять его с помощью угловых extend api.

пример кода, с которым я столкнулся:

.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');
  };
});

Рабочее решение вышеуказанного кода можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...