Parece una pregunta muy básica, pero no puedo obtener la sintaxis correcta.
<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>
Todo lo que quiero es mostrar todas las preguntas donde id NO es -1. Qué estoy haciendo mal. ¡Gracias!
javascript
angularjs
angularjs-ng-repeat
ng-filter
americanslon
fuente
fuente
expression
se explica (segunda p en Uso -> argumentos )filter: {Id: "!-1"}
o algo así debería hacer el trucoRespuestas:
La sintaxis está un poco fuera de lugar, intente:
<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>
Vea un pequeño JSFiddle: http://jsfiddle.net/U3pVM/3845/
Editar:
Ejemplo con 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>
fuente
checkForX
y luego usémosla como... | filter:checkForX
y devolveremos verdadero o falso si hay una coincidencia ...Id
que contenga-1
una subcadena, como-11
o2-1
. Para verificar de manera confiable queId
no lo-1
es, debe escribir una pequeña función de comparación y usarla como filtro.Aunque la respuesta de @Michael Rose funciona para este caso, no creo que lo haga si intenta filtrar no es igual a algún objeto / variable
En ese caso, podría usar:
JS :
filterId = -1
HTML:
<li ng-repeat="question in newSection.Questions | filter: !{ Id: filterId}"> </li>
Un caso aún más anidado:
JS :
someQuestion = { someObject: { Id: 1 } } newSection.Questions = [someQuestion]
HTML
<li ng-repeat="question in newSection.Questions | filter: !{someObject : {Id: -1} }"> </li>
fuente