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>