Мне нужно показать объект, только если одно из его свойств равно массиву.Equal Arrays AngularJS Pro
У меня есть контроллер в app.js:
app.controller('checkBoxController', function ($scope) {
$scope.ingredients= [
{label: 'Egg', value: 1},
{label: 'Milk', value: 2},
$scope.selection=[];
$scope.toggleSelection = function toggleSelection(ingredientLabel) {
var idx = $scope.selection.indexOf(ingredientLabel);
if (idx > -1) {
$scope.selection.splice(idx, 1);
}
else {
$scope.selection.push(ingredientLabel);
}
};
});
и HTML-код для него:
<span style="color:black;" class="selected-item">Selected Items:<span>
<div ng-repeat="label in selection" class="selected-item">
</div>
<div class="list-group">
<div class="list-group-item" ng-repeat="product in meals.products" ng-show="product.contents==selection">
<h1>{{product.name}}</h1>
<meal-gallery></meal-gallery>
<meal-tabs></meal-tabs>
</div>
</div>
и у меня есть { name: 'Scrambled Egg', contents: "Egg"}
в массиве продукции. Поэтому мне нужно показать продукт, если его содержимое равно выбранным ингредиентам. У меня нет проблем, когда это только один ингредиент, такой как «Яйцо», но если мне нужно содержимое из двух равных выбранным?
angularjs pro? это какой-то модуль? Похоже, вы внедрили опечатку в свой код при публикации здесь, ваш массив не завершен. –
Если оба объекта не являются буквально одним и тем же объектом, вы не можете использовать indexOf таким образом. 'var x = {}; var y = x; x == y; // true '' var x = {'name': 'pie'}; x == {'name': 'pie'}; // false' –