Ng-Model =“something。$”这是什么意思?

时间:2015-10-26 16:30:23

标签: javascript angularjs angularjs-directive angularjs-filter

我是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.$"呢?这是做什么以及它如何与过滤器一起使用。

我试着搜索这个并找不到任何东西。谢谢!

2 个答案:

答案 0 :(得分:4)

它特定于过滤器逻辑。 $用作属性匹配器,以匹配列表中对象上所有属性的值。因此,在您的过滤器中,绑定表达式是对象search,并在$上将匹配器字符串指定为search属性(这是搜索输入的ng模型)将启用过滤器比较匹配的friendObj的所有属性值。

See doc

  

请注意,命名属性仅匹配同一级别的属性,而特殊$属性将匹配同一级别或更深层次的属性。例如。 {name:{first:&#39; John&#39;,last:&#39; Doe&#39;}}之类的数组项目将不会被{name:&#39; John&#39;}匹配,但是将由{$:&#39; John&#39;}匹配。

答案 1 :(得分:0)

在您复制的示例上方的文档中对此进行了解释:

  

可以使用特殊属性名称$(如{$:“text”})来接受对象的任何属性或其嵌套对象属性的匹配。

因此,通过将文本框绑定到search.$,示例将启用对所有可用属性的搜索。