2014-11-14 24 views
9

Bitte beachten Sie die Details. Warum ist die Ausgabe falsch?Angular JS Filter entspricht

HTML:

<div ng-app> 
    <div ng-controller="TodoCtrl"> 
     <h1>List</h1> 

     <div ng-repeat="t in todos | filter:{ id: '-1'}">{{t.text}}</div> 
    </div> 
</div> 

Angular Code:

function TodoCtrl($scope) { 
    $scope.todos = [{ 
     text: 'learn angular', 
     done: true, 
     id: -1 
    },{ 
     text: 'learn angular 2', 
     done: true, 
     id: -11 
    }, { 
     text: 'build an angular app', 
     done: false, 
     id: 1 
    }]; 
} 

Ausgang:

learn angular 
learn angular 2 

Bitte sehen:

Filter: {id: '-1'}

Warum die Ausgabe sind:

learn angular 2 

ich die id -1, suchen möchten, aber learn angular 2 ist -11

Antwort

24

die Anführungszeichen entfernen von '-1' und senden Sie true an den Filter, um einen strikten Vergleich zu machen.

ng-repeat="t in todos | filter:{ id: -1}:true"

+0

Warum geschieht das? – Flezcano

+0

was ist, wenn ich nicht gleich -1 Werte mit: true ?? –

+0

können Sie für dieses 'http: // jsfiddle.net/U3pVM/33383 /' helfen, warum das letzte nicht in der Ausgabe angezeigt wird, Ereignis dort ist Identifikation ist -12? –