Угловой 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.
Что я делаю не так. Спасибо!
2 ответов:
синтаксис просто немного выключен, попробуйте:
<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>
хотя @Michael Rose answer работает в этом случае, я не думаю, что это будет, если вы попытаетесь отфильтровать не равный какой-либо объект/переменную
в этом случае вы можете использовать:
JS:
filterId = -1HTML:
<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>
Comments