处理用户可以对项目进行投票的项目,在订单之后,该功能仅适用于项目的原始索引。我想通过他们的ID属性跟踪这些项目,这些项目是从数据库中提取的,但是我遇到了问题。我也试过传递对象而不是它们的索引,但又一次无法绕过它。
相关JS
angular.module("cardSite", ['masonry'])
.controller('mainCtrl', function($scope, dataService) {
$scope.cards = [];
dataService.getCards().then(function(response) {
$scope.cards = response.data;
}, function() {});
$scope.plusOne = function($index) {
$scope.cards[$index].card_rating += 1;
};
});
相关HTML
<div class="col-lg-3 tile grid-item" ng-repeat="card in cards | orderBy : '-card_rating' | limitTo:8 track by card.ID">
<div class="panel panel-default {{ card.card_category | lowercase }}_panel">
<p>Card ID: {{card.ID}}</p>
<!DOCTYPE svg>
<p ng-click="plusOne($index)"> Vote up</p>
<p>{{card.card_rating}}</p>
</div>
有人有任何建议吗?
答案 0 :(得分:3)
在这种情况下,为什么需要索引?
你可以直接传递对象:
<p ng-click="plusOne(card)"> Vote up</p>
并将您的功能更改为:
$scope.plusOne = function(card) {
card.card_rating += 1;
};