【发布时间】:2017-07-19 16:31:51
【问题描述】:
我正在尝试创建一个可以计算啤酒点赞数的应用!这将更新存储啤酒的 API,进而使用 PUT 方法更新 API 和 angularJS 视图上的点赞数。每次单击类似时,我都能使视图正常工作。我不确定为什么我的 PUT 方法继续返回 404 并且不会更新 API。请参阅下面的代码了解我的 put 方法。为此,我还包含了我的 JS 和 HTML。我觉得我很接近,但不知道如何让“喜欢”在 API 上更新。先感谢您!!我认为我将不正确的数据传递给 PUT 方法。
HTML:
<div ng-app="beerApp" ng-controller="BeerController" class="jumbotron">
<div class="all-beer">
<div class="single-beer" ng-repeat="beer in allBeer">
<div>{{beer.name}}</div>
<div>{{beer.likes}}</div>
<button ng-click="decrease(beer)">X</button>
<button ng-click="increase(beer)">\3</button>
</div>
</div>
</div>
JS:
angular.module('beerApp', []).controller('BeerController', function($scope, $http) {
$scope.allBeer = [];
$scope.beerSum = function() {
$http({
method: 'GET',
url: /api/beers
}).
then( function(response) {
if(typeof response === 'object') {
var dataArr = response.data;
for (var i = 0; i < dataArr.length; i++) {
var beer = dataArr[i];
$scope.allBeer.push(beer);
}
} else {
return;
}
}, function(error) {
console.log('i am an error', error);
})
};
$scope.beerSum();
$scope.increase = function(beer){
var newLikes = beer.likes++;
$http({
method: 'PUT',
url: '/api/beer/',
data: JSON.stringify($scope.allBeer.likes),
}).then(function successCallback(response) {
console.log("Updated!");
}, function errorCallback(response) {
console.log("not updated")
});
};
【问题讨论】:
-
您使用的是什么 API?
-
你忘记关闭你的 ' in put 方法 url
-
另外,我认为您向您的服务器发送了错误的数据。你是说更新喜欢,但你不是说增加哪种啤酒的喜欢。另外,您正在对我看不到的属性进行字符串处理。
-
@SpaghettiBathtub 我看到你的个人资料说网络开发实习生。一个夏天前,我是一家希望我学习 AngularJs 的公司的网络开发实习生。作为当前实习生的前实习生,如果不需要 Angular 的版本,我强烈建议迁移到 Angular 4。这有很多原因,但主要是编码工具更支持,并且会告诉你错误你可能早做。 Visual Studio Code 和 Angular 4 配合得非常好,网上有很多指南。如果您在入门方面需要任何帮助,请与我联系,我很乐意与您交谈。
-
非常感谢你!!!我真的认为如果我可以让 PUT 代码工作以将更新的喜欢推送到 API(不包括上面代码上的链接,但这不是问题),那么我可以完成我需要这个应用程序的内容。最后一点是获得新的点赞并最终向 API 添加新啤酒。