2014-02-25 23 views
1

我有應用程序配置對象作爲依賴模塊中的值。在被注入服務之前編輯它的值

我想在依賴模塊內部注入任何地方之前編輯該對象。

如何。

dependency.value('sett', { 
    bla: 'bla' 
}); 

dependant.config(function (sett) { 
    // sett is not available here 
}); 

Plunkr

回答

1

您可以使用$provide

dependant.config(function ($provide) { 
    $provide.value('sett', { bla: 'not bla' }); 
}); 

演示:http://plnkr.co/edit/cEqxrMjro72RADymEgow?p=preview

編輯:

如果要改爲編輯重寫你可以使用運行塊的整個價值對象的特定值:

運行塊 - 獲取在創建後的注射器和用於kickstart的應用程序執行。只有實例和常量可以注入到運行塊中 。這是爲了防止在應用程序運行時進一步配置系統 。

dependant.run(function (sett) { 
    sett.bla = 'not bla'; 
}); 

演示:http://plnkr.co/edit/tWT9ZTS47lDj6yZOj5cf?p=preview

+0

這作爲覆蓋完整的對象。我只需要編輯現有的一些屬性。 – Birowsky

+0

對不起,誤會。更新了我的答案。 – tasseKATT

+0

這是壞蛋。所以你說的是沒有服務或工廠或控制器正在運行/加載/實例化運行塊之前?那是什麼'注射器被創造'是什麼意思?索引所有服務/工廠? – Birowsky