【发布时间】:2013-02-16 07:47:54
【问题描述】:
我正在开发一个小型 AngularJS 应用程序,目前正在努力创建服务。
我有一个服务作为提供联系人(姓名、地址...)的后端。
到目前为止,它们被硬编码为服务中的数组 (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;
}]);
我不知道为什么第二个代码 sn-p 有效,而不是第一个。有人可以帮我理解吗?
【问题讨论】:
-
你能告诉我们剩下的代码吗?你在哪里访问它?
$http返回一个承诺,但我没有看到您的服务返回 anything。 -
对不起,这只是一个sn-p,我无意中删除了“返回实例”部分。我会把它放回去。
-
return instance实际上是损坏的。看我的回答。
标签: javascript angularjs