0
如何在運行時向模塊/角度應用添加服務。ANGULAR運行時向模塊添加服務
請問$injector
或$provide
幫我嗎?
喜歡的東西
app.addService('s',['k',function(k){console.log('new Service k');}]);
如何在運行時向模塊/角度應用添加服務。ANGULAR運行時向模塊添加服務
請問$injector
或$provide
幫我嗎?
喜歡的東西
app.addService('s',['k',function(k){console.log('new Service k');}]);
是,$provide
將做到這一點。查看文檔在https://docs.angularjs.org/api/auto/service/ $提供
所以你可以做這樣的事情(從內foo
):
app.factory('foo',functon() {
$provide.factory('s',function() {
console.log("new service 's'");
});
});
的問題是,你不能注入$provide
直接到服務,所以你需要捕獲它在模塊創建時。
問題是,你爲什麼要這麼做?由於在'foo'運行之前,服務'沒有被聲明,所以你可能會冒着在其他地方調用服務作爲依賴的風險。如果它在正常注射的任何地方,你可能會得到一些奇怪的錯誤。
事實上,我認爲只有它的工作方式是通過使用$injector
從其他服務中獲取它。
所以,是的,你可以這樣做,但你真的想嗎?