我正在开发一个小的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