Angular JS filter not equals



似乎是一个非常基本的问题,但我不能得到正确的语法…

<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的所有问题。我做错了什么?谢谢!

语法有点不对劲,试试:

<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/

编辑:

有变量的例子:

<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回答适用于这种情况,但我不认为它会如果你试图过滤不等于一些对象/变量

在这种情况下,你可以使用:

JS :

filterId = -1
HTML:

<li ng-repeat="question in newSection.Questions | filter: !{ Id: filterId}">
</li>

更嵌套的情况:

JS :

someQuestion = {
   someObject: {
     Id: 1
   }
}
newSection.Questions = [someQuestion]

最新更新