筛选器's的第二个参数不起作用
Filter's second parameter not working
我正在尝试理解AngularJS中的"filter"过滤器。从文档中了解到,它还需要第二个参数。如果传递为"true",则执行严格的比较。
HTML
<fieldset>
<legend>Array of objects (Search all properties)</legend>
<input type="text" ng-model="searchObject" />
<ul>
<li ng-repeat="value in arrOfObjects | filter: searchObject: true">
<span>{{value.firstName}}</span>
<span> {{value.lastName}}</span>:
<span><strong>{{value.email}}</strong></span>
</li>
</ul>
</fieldset>
JS
$scope.arrOfObjects = [
{
firstName: "Anup",
lastName: "Vasudeva",
email: "anup.vasudeva@email.com"
},
{
firstName: "Vijay",
lastName: "Kumar",
email: "vijay.kumar@email.com"
},
{
firstName: "Virat",
lastName: "Kohli",
email: "virat.kohli@yahoo.com"
}
];
我所期望的是,如果我键入"aNuP",它将尝试与所有属性完全匹配,并且将无法返回任何内容。因此,我应该看到一个空列表。
我是不是错过了什么。
这是一个显示以下解释的plunker:http://plnkr.co/edit/b1vuJV4RFNQSdpfaw0Pd?p=preview
对对象进行角度过滤的方法是比较对象的字段,看看它们是否包含过滤条件,同时忽略大小写。这提供了一个广泛的用法,可以通过添加第二个布尔参数true
来缩小该用法的范围,以指示要删除contains
规则。
在您的示例中:
<fieldset>
<legend>Array of objects (Search all properties)</legend>
<input type="text" ng-model="searchObject" />
<ul>
<li ng-repeat="value in arrOfObjects | filter: searchObject: true">
<span>{{value.firstName}}</span><span> {{value.lastName}}</span>: <span><strong>{{value.email}}</strong></span>
</li>
</ul>
</fieldset>
键入Vasudeva
、Anup
或anup.vasudeva@email.com
将各自过滤掉除第一条记录之外的所有记录,因为在单个字段上完全匹配。因此,任何字段上的精确匹配都将导致显示记录。
删除"true":
<li ng-repeat="value in arrOfObjects | filter: searchObject">
给出一个更大的包含集,因为它在任何字段中查找表达式并忽略大小写,所以键入字母a
(出现在一个或多个字段中的所有对象)会列出所有对象。
要在对象中的单个字段上进行筛选,请使用以下格式:
<li ng-repeat="value in arrOfObjects | filter: {lastName :searchObject}">
类似地,你可以添加第二个布尔参数来获得完全匹配:
<li ng-repeat="value in arrOfObjects | filter: {lastName :searchObject}:true">
最后,您可以通过在控制器中定义一个函数来创建自定义过滤器,该函数对给定的匹配返回true或false。
<li ng-repeat="value in arrOfObjects | filter: myEmailFilter">
并在您的控制器中写入实际的过滤器。
$scope.myEmailFilter = function(value) {
console.log(value.email);
if(value.email.indexOf("email.com")>=0) {
console.log('true');
return true;
} else {
console.log('false');
return false;
}
};
相关文章:
- 当第二个参数为空时管理JavaScript调用的构造
- 筛选器's的第二个参数不起作用
- jQuery Datepicker BeforeShowDay 第二个参数
- 添加第二个参数时,Javascript函数将停止工作
- JavaScript 部分应用函数 - 如何仅绑定第二个参数
- 何时适合将集合传递给主干模型构造函数第二个参数
- 下划线.js : _.where() 使用第一个参数,但不适用于第二个参数
- 如何在setInterval函数中生成第二个参数(持续时间)的随机持续时间值
- 如何将jquery对象转移到“On”方法(第二个参数)
- 是否可以将值数组作为第二个参数传递给 _.without() 函数
- JSON.stringify()工作不正常-第二个参数消失
- 结合Supercrollorama,TweenMax.to中第二个参数的含义是什么
- 简单`replace()`的第二个参数存在问题
- retrieve()中的第二个参数;始终在运行
- Javascript中reduce回调中的第二个参数
- 可以't在addEventListener方法的第二个参数中添加括号
- 骨干路由器多参数;第二个参数未定义
- JavaScript中JSON.stringify中的第二个参数
- 如果第二个参数再次是替换方法,则JavaScript替换不起作用
- 如何在Mootools fireEvent函数的第二个参数中访问对象实例