Есть несколько способов добиться этого.Ваша логика ng-show
должна в основном двигаться внутри ng-repeat
.
Самый простой способ ИМО - добавить функцию фильтрации к $scope
в вашем контроллере, например:
... // Controller creation code
function YourController($scope, ...)
{
... // Controller code
$scope.filterFoodItems = function(food)
{
return (food.$att.random && (search.SomeBoolean || OtherBoolean)) || !food.$att.random;
};
}
Следующим шагом является изменение значения filter
в вашем ng-repeat
:
<li
class="xx"
ng-repeat="food in foodlist.$models | filter:filterFoodItems | limitTo : foodlength as foodResults track by food.id">
...
</li>
Просто для общего знания, вы также можете написать собственный фильтр, но я не думаю, что это необходимо в вашем случае.Вот как это сделать: https://toddmotto.com/everything-about-custom-filters-in-angular-js/