Работа над проектом, в котором пользователи могут голосовать по элементам, а после orderBy функция работает только с исходными индексами элементов. Я хотел бы отслеживать элементы по свойству 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>
Кто-нибудь есть какие-либо предложения?
дубликата http://stackoverflow.com/a/16118904/820942 – Tom