[javascript] 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이 아닌 모든 질문을 보여주는 것입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까. 감사!



답변

구문이 약간 벗어났습니다.

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

HTML

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


답변