web-dev-qa-db-fra.com

Angular JS différent de

Cela semble être une question très simple, mais je ne parviens pas à comprendre correctement la syntaxe.

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

Tout ce que je veux, c'est montrer toutes les questions où id n'est pas -1. Qu'est-ce que je fais mal. Merci!

79
americanslon

La syntaxe est juste un peu en retrait, essayez:

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

Voir un petit JSFiddle: http://jsfiddle.net/U3pVM/3845/

Modifier:

Exemple avec variables:

<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>
159
Michael Rose

Bien que @Michael Rose answer fonctionne dans ce cas, je ne pense pas que ce sera le cas si vous essayez de filtrer différents objets/variables

Dans ce cas, vous pouvez utiliser:

JS :

filterId = -1

HTML:

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

Un cas encore plus imbriqué:

JS :

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

HTML

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