我正在使用$ resource.query()从JSON文件中获取JSON数组。我可以使用$ save更改数据,但JSON文件实际上并未更新。谷歌搜索整个上午后无法找到解决方案。不确定是否可以使用AngularJS更新本地json文件。任何帮助,将不胜感激。
这是我的代码。
getData: function(datatype){
var url = "data/" + datatype + ".json";
return $resource(url, {}, {
query: {
method: "GET",
isArray: true
}
});
},
在另一个服务函数中调用getData()函数:
var post = this.getData("jobs").query(function(){
angular.forEach(staffs, function(staff){
for(var i = 0; i < post.length; i++){
if(post[i].id == jobId){
alert(post[i].name); //Here it shows the original name "names and numbers"
post[i].name = "changed";
post[i].$save();
alert(post[i].name); //Here it shows the new name "changed"
//but the data json file is not changed
continue;
}
}
});
});
jobs.json:
[
{
"id": 554114,
"name": "names and numbers",
"facility_id": 0
},
...
]
答案 0 :(得分:5)
克里斯的上述答案似乎并不重要。最初的问题是关于使用angular的$ resource保存。不是javascript是否可以写入文件。
$ resource已经定义了“Post”。因此,正确调用的$ resource.save()将使回发调用服务器。在服务器上,您仍然需要编写代码来保留发布的数据。但底线是$ resource允许Post。
shaosh似乎遇到了$ resource.save
的问题答案 1 :(得分:1)
post 是您的资源。不是帖子(i)
所以你不必做一个
post.$save();
而不是post [i]。$ save()?
答案 2 :(得分:0)
此Stackoverflow问题和答案可能对您有用:Edit a file using javascript
总之; Javascript通常无法写入文件,除非您将帖子发回服务器,然后服务器可以对您的json文件进行更新。
希望这有帮助。