Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ng模型=";一些东西;这是什么意思?_Javascript_Angularjs_Angularjs Directive_Angularjs Filter - Fatal编程技术网

Javascript Ng模型=";一些东西;这是什么意思?

Javascript Ng模型=";一些东西;这是什么意思?,javascript,angularjs,angularjs-directive,angularjs-filter,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="s

我是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">
Any:
仅限姓名
仅限电话
我不清楚
ng model=“search.$”是什么意思。使用
ng model
的双向绑定很清楚,但是
的“search.$”
呢?它在做什么?它是如何与过滤器一起工作的

我试着找这个,但什么也找不到。谢谢

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

请注意,命名属性将仅匹配同一级别上的属性,而特殊$property将匹配同一级别或更深级别上的属性。例如,像{name:{first:'John',last:'Doe'}}这样的数组项将不会由{name:'John'}匹配,而是由{$:'John'}匹配


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

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


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

是否有人创建了一个名为$的变量?谢谢,这很有意义。建议不要使用“$”,因为像$index这样的变量是为angular本身保留的。但仅此而已-符号“$”没有什么特殊之处,您可以编写和$scope。$='Input name'。PetrAveryanov可能不是为了这个目的。这只是用于比较的输入对象的一部分。此外,文档化的特性本身也表示,这是进行通用比较的方法。在属性前面加上
$
的问题确实会对某些地方产生影响,例如其中一个键以
$
开头的地方以及使用angular.equals时的地方。