我正在開發一個小的AngularJS應用程序,我目前正在努力創建服務。JSON初始化服務中的數據
我有一個服務作爲提供聯繫人(名稱,地址...)的後端。 到現在爲止,他們硬編碼在服務(instance.contacts=[...]
)數組,但現在我想從一個JSON文件閱讀:
myModule.factory('contactService', ['$http',function ($http) {
var instance = {};
$http.get('contacts.json').success(function (data) {
instance.contacts = data;
});
return instance;
}]);
我在該文件還有我的瀏覽器控制檯中看到已被成功讀取,但我在屏幕上看不到任何更改。
所以我嘗試了以下,而不是和它的工作:
myModule.factory('contactService', ['$http',function ($http) {
var instance = {
contacts:[]
};
$http.get('contacts.json').success(function (data) {
angular.forEach(data, function(item) {
instance.contacts.push(item);
});
});
return instance;
}]);
我不知道爲什麼第二代碼片段的作品,而不是第一個。有人能幫我理解嗎?
你能告訴我們其餘的代碼嗎?你在哪裏訪問它? '$ http'返回一個承諾,但我沒有看到你的服務返回*任何*。 – 2013-03-01 18:03:50
對不起,這只是一個片段,我無意中刪除了「返回實例」部分。我會放回去。 – 2013-03-01 18:05:58
'return instance'實際上是什麼被打破。看到我的答案。 – 2013-03-01 18:18:55