angular.js - AngularJS filter:search 是如何匹配的 ng-repeat filter:search
伊谢尔伦
伊谢尔伦 2017-05-15 17:02:05
[AngularJS讨论组]

使用 angularJS 来进行测试,ng-reapt="pro in products | filter:search" 一个特别大的疑问
如下的这个测试,为什么 search 输入框中,输入 a也会有结果

测试代码:





  
  
  




  


  

repeat

  1. {{pro.name}} - {{pro.key}}

normalProduct

  1. {{pro.name}} - {{pro.key}}

{{dump(result)}}

测试地址

http://plnkr.co/edit/wZIOF1uAvEgB9UPD1EnW?p=preview

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
PHP中文网

你这种没有指定过滤哪个字段的情况下,默认filter会匹配所有字段的值。当你输入a的时候,angular应该是默认把false转成了字符串,a匹配到了false。如果你把过滤条件改成这样

<li ng-repeat="pro in products | filter:{name:search}">{{pro.name}} - {{pro.key}}</li>

打a就不会有结果了,句话的意思是只过滤name字段的值。

ringa_lee

因为ng默认把你product里三个字段keynameis_in_presale都转成字符串和你的输入去比较了,所以a其实匹配到的是false里的a。你可以试试输入true,就感受到结果区别了。

如果需要指定字段进行filter,参考文档:

或者直接看我的plunker

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号