У меня есть следующие услуги:Могу ли я вводить зависимости на лету в angular.js?
var module = angular.module('app', []);
module.service('service', function(dep){
});
И предположим, что мне нужно создать его экземпляр где-то в моем коде, с другой зависимостью, чем значение по умолчанию.
//service is injected with the default 'dep' dependency
module.controller('controller', function(service, $injector) {
//I need to call the service with my custom dependency
//but $injector does not help, because it only gives back
//the already injected service object
var injectedService = $injector.get('service')
//So theoretically I would need something like this
//but I did not find such a feature yet
var customDep = {...}
var serviceWithCustomDep = $injector.inject('service', [customDep]);
});
Есть ли способ достичь этого?
Это звучит, как вы хотите, чтобы определить [поставщик] (https://docs.angularjs.org/guide/providers), который предоставляет методы для горячей замены конфигурации , –
Да, что-то в этом роде. Но я хотел бы сделать это с использованием инъекции зависимостей (не вызывая методы непосредственно у поставщика), потому что мне, возможно, придется делать это с внутренними (предварительно упакованными угловыми) провайдерами, и я не могу их модифицировать. – gsanta