如何更新AngularJS中的json文件中的数据?

时间:2014-07-23 19:49:03

标签: javascript json angularjs

我正在使用$ 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
},
...
]

3 个答案:

答案 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文件进行更新。

希望这有帮助。