我对角度很新,并且非常努力理解$ 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文件中的喜欢数量,反之亦然。
答案 0 :(得分:2)
您无法从客户端执行此操作,而是从服务器执行此操作。您需要做的是从json文件中读取数据。此数据将存储在data
下。从那时起,你可以JSON.parse
将它变成一个对象。然后将其视为常规对象,并对其进行更改。然后,您必须JSON.parse
并更新您的文件。很抱歉将所有内容放入段落中。我在移动设备上。
答案 1 :(得分:0)
你基本上是想做一个帖子。如果你有一个服务器端逻辑,那么角度的正确方法是$ http.post():
来自angular docs的片段:
$http.post('/someUrl', data, config).then(successCallback, errorCallback);