В последнее время я много работаю с AngularJS, и мне очень нравится материал для инъекций зависимостей. Я использую его повсюду, но только в Угловых компонентах, таких как контроллеры и т. П.AngularJS DI для пользовательских функций
Это всегда вызывает на угловом объекте:
angular.module('app').controller(/**/);
Теперь у меня есть эта функция:
var custom = function(MyService) {
// do stuff
};
Я объявленная на службу так:
angular.module('app').factory('MyService', function($rootScope) {
return {
show: function() {
// do stuff
};
},
hide: function() {
// do stuff
}
};
});
я теперь хотите использовать эту службу в моей пользовательской функции. Есть ли способ ручного вызова углового контейнера DI? (Я не мог найти что-либо в документации ...)
Я знаю, что это работает для контроллеров не определен с angular.module()...
вещью:
function Controller(MyService) {
MyService.hide(); // works
}
Но как использовать его вне AngularJS компонентов, в полностью независимые функции?
Или мне нужно сделать совершенно другой путь для достижения моей цели?
Приветствие и спасибо передового,
христианских
Thats pretty awesome. Не знал об этом. BTW: вы также можете использовать 'angular.injector()' для получения инжектора. – DaGardner
'angular.injector()' даст вам новый инжектор. Который не будет иметь никаких ваших услуг. – calebboyd
Ох. Спасибо за этот намек: D – DaGardner