У меня есть цикл ng-repeat, проходящий через список вин, полученных из API. У меня также есть переменная массива, содержащая все идентификаторы вин, которые были добавлены в избранное из базы данных. Я хочу иметь возможность отображать кнопку "Добавить в избранное", если пользователь еще не добавил в список конкретное вино результата. Чтобы сделать это, я подумал, что сделаю что-то вроде:
HTML:
<tr ng-repeat="wine in wines">
<td>{{$index+1}}</td>
<td>{{ wine.Name }}</td>
<td>{{ wine.Appellation.Name }}</td>
<td>${{ wine.PriceMin }} - ${{ wine.PriceMax }}</td>
<td>
<!-- If wine.Id is not yet in the array of all favorite ids, display "Add Button" -->
<a href="#" class="btn btn-primary btn-dark" ng-click="addToFavorites(wine.Id)" ng-if="favorites.indexOf(wine.Id) !> -1"> Add </a>
<!-- Else Display Already Added -->
<span ng-if="favorites.indexOf(wine.Id) > -1">Added</span>
</td>
</tr>
Вот мой JS:
app.controller("MainController", function($scope, $http){
$scope.favorites = [];
var getAllFavorites = function(){
$http.get("/home/getAllFavoriteIds").success(function(response) {
angular.forEach(response, function(r) {
$scope.favorites.push(r);
});
});
};
});
Я новичок в .indexOf(), поэтому я думаю, что это проблема. Но, возможно, я ошибаюсь.