如何编辑JSON文件中的数据?

时间:2015-10-21 18:55:06

标签: javascript json angularjs web-applications

我对角度很新,并且非常努力理解$ http.get和$ http.get的语法。我想要做的是当用户在my web app底部的upvote / downvote系统中留下评级时,更改我的JSON文件中的数据。我当前代码的相关部分是:

app.js

.controller('rateCtrl', function ($scope, $http) {
  $http.get('rating.json').success(function(data) {
      $scope.likes = data.likes;
      $scope.dislikes = data.dislikes;
      $scope.addLike = function () {
          $scope.likes = $scope.likes + 1;
          data.likes = data.likes + 1;
      };
      $scope.addDislike = function () {
          $scope.dislikes = $scope.dislikes + 1;
          data.likes = data.likes + 1;
      };
  });
});

的index.html

<div class="content" id="sub-section">
  <div class="text-area">
      <div class="text" style="color:#3A3A3A">
          Text ...
      </div>
  </div>
  <div class="small"></div>
  <div>
      <table style="text-align:center; font-size:1em" class="table-responsive table" ng-controller="rateCtrl">
          <tr>
              <td>Jeg likte den!</td>
              <td>Jeg likte den ikke!</td>
          </tr>
          <tr>
              <td><p class="likes" ng-click="addLike()">+{{likes}}</p></td>
              <td><p class="dislikes" ng-click="addDislike()">-{{dislikes}}</p></td>
          </tr>
      </table>
  </div>

rating.json

{
"likes": 12,
"dislikes": 0
}

如果有人能给我一个代码示例,我会非常感激,我可以在用户喜欢时更改JSON文件中的喜欢数量,反之亦然。

2 个答案:

答案 0 :(得分:2)

您无法从客户端执行此操作,而是从服务器执行此操作。您需要做的是从json文件中读取数据。此数据将存储在data下。从那时起,你可以JSON.parse将它变成一个对象。然后将其视为常规对象,并对其进行更改。然后,您必须JSON.parse并更新您的文件。很抱歉将所有内容放入段落中。我在移动设备上。

答案 1 :(得分:0)

你基本上是想做一个帖子。如果你有一个服务器端逻辑,那么角度的正确方法是$ http.post():

来自angular docs的片段:

$http.post('/someUrl', data, config).then(successCallback, errorCallback);