使用 angularJS 来进行测试,ng-reapt="pro in products | filter:search" 一个特别大的疑问
如下的这个测试,为什么 search 输入框中,输入 a也会有结果
repeat
- {{pro.name}} - {{pro.key}}
normalProduct
- {{pro.name}} - {{pro.key}}
{{dump(result)}}
http://plnkr.co/edit/wZIOF1uAvEgB9UPD1EnW?p=preview
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你这种没有指定过滤哪个字段的情况下,默认filter会匹配所有字段的值。当你输入a的时候,angular应该是默认把false转成了字符串,a匹配到了false。如果你把过滤条件改成这样
打a就不会有结果了,句话的意思是只过滤name字段的值。
因为
ng默认把你product里三个字段key,name,is_in_presale都转成字符串和你的输入去比较了,所以a其实匹配到的是false里的a。你可以试试输入true,就感受到结果区别了。如果需要指定字段进行
filter,参考文档:或者直接看我的plunker