2016-10-21 91 views
0

我正在使用Webpack 1.13.2和Angular 1.5.8,並且無法從我的poiService文件中訪問我的「SETTINGS」常量。Angular:無法訪問注入的依賴項常量

TypeError: Cannot read property 'API_URL' of undefined 

http://plnkr.co/edit/6repllAk39kv4Enfw8RU?p=catalogue 

感謝您的幫助。

回答

1

PoiService有不匹配的註釋:

services.factory('PoiService', ['SETTINGS', require('./poiService')]) 

服務定義和

module.exports = function ($http, SETTINGS) { ... } 

函數簽名。

由於這個原因,可能不建議將工廠功能和服務定義保存在單獨的文件中。即使有必要做到這一點,最好使用命名的函數和$inject註釋,而不是內嵌陣列註釋:

services.factory('PoiService', require('./poiService')) 

... 

poiService.$inject = ['$http', 'SETTINGS']; 
function poiService($http, SETTINGS) { ... } 
module.exports = poiService; 
+0

你能告訴我你是如何與在線陣列註解做到這一點嗎? – adaba

+0

'services.factory('PoiService',['$ http','SETTINGS',require('./ poiService')])''。如上所述,這是不匹配的。預計有兩個項目將被注入,兩個項目應按同一順序進行註釋。可能的原因是你沒有看到DI註釋和函數簽名同時具有這種編碼風格。 – estus

+0

有沒有做'module.exports = poiService而不是module.exports = function($ http,SETTINGS){}'的任何一點?假設poiService文件只包含poiService定義而沒有其他內容?順便謝謝! – adaba