Angular JS-фильтр не равен
Похоже на очень простой вопрос, но я не могу правильно получить синтаксис.
<li class="list-group-item" ng-repeat="question in newSection.Questions | filter:Id != '-1'; " ng-mouseenter="hover = true" ng-mouseleave="hover = false">
<div href="#" editable-text="question.Text">{{question.Text}}</div>
</li>
Все, что я хочу, это показать все вопросы, где id не равен -1.
Что я делаю не так. Спасибо!
Ответы
Ответ 1
Синтаксис немного не работает, попробуйте:
<li class="list-group-item"
ng-repeat="question in newSection.Questions | filter:{ Id: '!-1'}"
ng-mouseenter="hover = true" ng-mouseleave="hover = false">
<div href="#" editable-text="question.Text">{{question.Text}}</div>
</li>
Посмотрите немного JSFiddle: http://jsfiddle.net/U3pVM/3845/
Edit:
Пример с переменными:
<script> var invalidId = '-1'; </script>
<li class="list-group-item"
ng-repeat="question in newSection.Questions | filter:{ Id: '!' + invalidId}"
ng-mouseenter="hover = true" ng-mouseleave="hover = false">
<div href="#" editable-text="question.Text">{{question.Text}}</div>
</li>
Ответ 2
Хотя ответ @Michael Rose работает для этого случая, я не думаю, что это будет, если вы попытаетесь фильтровать не равный какой-либо объект/переменную
В этом случае вы можете использовать:
JS
filterId = -1
HTML:
<li ng-repeat="question in newSection.Questions | filter: !{ Id: filterId}">
</li>
Еще более вложенный случай:
JS
someQuestion = {
someObject: {
Id: 1
}
}
newSection.Questions = [someQuestion]
HTML
<li ng-repeat="question in newSection.Questions | filter: !{someObject : {Id: -1} }">
</li>