Angular JS 过滤器 equals

10
请看细节。为什么输出结果有误?
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 代码:

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

输出:

learn angular
learn angular 2

请看:

过滤器:{ id: '-1'}

为什么输出包括:
learn angular 2

我想要搜索id为-1,但是learn angular 2的id是-11
1个回答

25

将“-1”中的引号删除,并将true发送到过滤器以进行严格比较。

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

将'-1'中的单引号删除,并将true传递给筛选器,进行严格比较。

为什么会发生这种情况? - Flezcano
如果我想要不等于-1的值为true,该怎么办? - chirag satapara
你能帮忙看一下这个 http://jsfiddle.net/U3pVM/33383/ 吗?为什么最后一个没有在输出中显示,即使它的id是-12? - chirag satapara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接