我是Angular的新手,我正在阅读过滤器文档,我看到了这段代码。
<label>Any: <input ng-model="search.$"></label> <br>
<label>Name only <input ng-model="search.name"></label><br>
<label>Phone only <input ng-model="search.phone"></label><br>
<tr ng-repeat="friendObj in friends | filter:search:strict">
我不清楚ng-model="search.$"
的含义。与ng-model
的双向绑定很明确,但"search.$"
呢?这是做什么以及它如何与过滤器一起使用。
我试着搜索这个并找不到任何东西。谢谢!
答案 0 :(得分:4)
它特定于过滤器逻辑。 $
用作属性匹配器,以匹配列表中对象上所有属性的值。因此,在您的过滤器中,绑定表达式是对象search
,并在$
上将匹配器字符串指定为search
属性(这是搜索输入的ng模型)将启用过滤器比较匹配的friendObj
的所有属性值。
请注意,命名属性仅匹配同一级别的属性,而特殊$属性将匹配同一级别或更深层次的属性。例如。 {name:{first:&#39; John&#39;,last:&#39; Doe&#39;}}之类的数组项目将不会被{name:&#39; John&#39;}匹配,但是将由{$:&#39; John&#39;}匹配。
答案 1 :(得分:0)
在您复制的示例上方的文档中对此进行了解释:
可以使用特殊属性名称$(如{$:“text”})来接受对象的任何属性或其嵌套对象属性的匹配。
因此,通过将文本框绑定到search.$
,示例将启用对所有可用属性的搜索。