Wydaje się, że jest to bardzo podstawowe pytanie, ale nie mogę uzyskać właściwej składni.
<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>
Chcę tylko pokazać wszystkie pytania, w których id NIE jest -1. Co ja robię źle. Dzięki!
javascript
angularjs
angularjs-ng-repeat
ng-filter
americanslon
źródło
źródło
expression
jest wyjaśnione (drugie p w Użycie -> argumenty )filter: {Id: "!-1"}
lub coś takiego powinno załatwićOdpowiedzi:
Składnia jest trochę błędna, spróbuj:
<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>
Zobacz trochę JSFiddle: http://jsfiddle.net/U3pVM/3845/
Edytować:
Przykład ze zmiennymi:
<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>
źródło
checkForX
a następnie użyj jej jak... | filter:checkForX
i zwróć prawdę lub fałsz, jeśli istnieje dopasowanie ...Id
zawierających-1
jako podciąg, takich jak-11
lub2-1
. Aby niezawodnie sprawdzić, czyId
nie-1
, należy napisać małą funkcję porównującą i użyć jej jako filtra.Chociaż odpowiedź @Michael Rose działa w tym przypadku, nie sądzę, aby tak było, jeśli spróbujesz filtrować różne obiekty / zmienne
W takim przypadku możesz użyć:
JS :
filterId = -1
HTML:
<li ng-repeat="question in newSection.Questions | filter: !{ Id: filterId}"> </li>
Jeszcze bardziej zagnieżdżony przypadek:
JS :
someQuestion = { someObject: { Id: 1 } } newSection.Questions = [someQuestion]
HTML
<li ng-repeat="question in newSection.Questions | filter: !{someObject : {Id: -1} }"> </li>
źródło