Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 角度重复中的隐式变量名_Javascript_Angularjs - Fatal编程技术网

Javascript 角度重复中的隐式变量名

Javascript 角度重复中的隐式变量名,javascript,angularjs,Javascript,Angularjs,假设我有几个对象,每个对象都具有属性x、y和z 现在考虑我有以下角度的NG重复: <div ng-repeat="obj in objs"> Values are: {{ obj.x }}, {{ obj.y }} and {{ obj.z }} </div> 据报道,你试图做的似乎不是一个好主意。基本上,因为。。。(开关“块”用于“obj”) (…)块中的所有原语(字符串、整数等)都将从 将块对象添加到块范围对象(…) 这就是像ng repeat这样的指令创建

假设我有几个对象,每个对象都具有属性
x
y
z

现在考虑我有以下角度的NG重复:

<div ng-repeat="obj in objs">
    Values are: {{ obj.x }}, {{ obj.y }} and {{ obj.z }}
</div>

据报道,你试图做的似乎不是一个好主意。基本上,因为。。。(开关“块”用于“obj”)

(…)块中的所有原语(字符串、整数等)都将从 将块对象添加到块范围对象(…)

这就是像ng repeat这样的指令创建自己的新范围的基本原因


我明白您尝试保存一些击键的意义,但这并不是说您不能复制&粘贴;)

如果您要使用这种格式:

<div ng-repeat="obj in objs">
    Values are: {{ x }}, {{ y }} and {{ z }}
</div>

值为:{x}、{y}和{z}
那就意味着x,y,z是作用域上的变量。因此,这种冲突会阻止您使用这样的隐式变量,除非您实际上通过helper函数将该变量放在作用域中,但是!这将在数组中每个对象具有相同名称的作用域变量之间创建重叠,因此无论哪种方式都存在命名冲突


对不起,我通常不做证明,但希望这能矛盾地证明为什么那是不可能的。希望有帮助

我没有说过要将其用作指令模板。事实上,我将根据一个对象数组编译它,所以模板将看到的唯一变量是该对象,仅此而已。我没有说过将其用作指令模板。事实上,我将根据一组对象来编译它,因此模板将看到的唯一变量是该对象,仅此而已。无论是否为指令模板,这仍然不是一个好主意:仅为了保存“几次”击键,就存在冲突和其他问题的风险太高。如果你还想冒险,我可能会尝试一下ng init……我真的看不到这些风险。是否需要进一步解释一下?“如果项是一个基元(如myArrayOfPrimitives中的基元),则基本上会将该值的一个副本分配给新的子作用域属性。更改子作用域属性的值(即使用ng模型,因此子作用域属性num)不会更改父作用域引用的数组。”@alexandernst,这是绝对正确的。最初的
ng repeat
就有这样一个选项,但在不同的用例中被打破了。例如,在嵌套重复中,您将难以指定焦点对象。
<div ng-repeat="obj in objs">
    Values are: {{ x }}, {{ y }} and {{ z }}
</div>