我试图理解我在文档网站上找到的与 AngularJS 中的过滤有关的一段代码。 (参见 http://docs.angularjs.org/api/ng.filter:filter)
特别是附加到对象 search
的 .$
,它在以下几行中使用:
24. Any: <input ng-model="search.$"> <br>
25. Name only <input ng-model="search.name"><br>
26. Phone only <input ng-model="search.phone"><br>
...
30. <tr ng-repeat="friendObj in friends | filter:search:strict">
使用 JSFiddle 破解,我尝试删除 .$
然后在输入字段中键入文本以应用过滤。这很好用。所以,一般来说,如果搜索过滤器可以在没有它的情况下工作,我为什么还要费心附加 .$
呢?
我对 AngularJS(以及我想的 JS)还很陌生,到目前为止我一直很喜欢学习它。任何帮助将不胜感激。
最佳答案
如果您阅读过滤器页面,您会注意到这一行:
That's equivalent to the simple substring match with a string as described above.
所以基本上就是说,当您只输入 ng-model="search"
时,您使用的是字符串搜索,它默认搜索数组/对象中的所有字符串项。当您使用 search.$
时,您指定要搜索对象中的每个项目。正如句子所解释的,这些是等价的。
虽然 search
用更少的代码实现了相同的结果,但我相信 .$
更好地解释了示例中过滤器的意图。
关于javascript - 附加到 AngularJS 过滤器对象时 ".$"的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21518184/