Angular ng repeat中的隐含变量名称

时间:2015-06-16 15:57:49

标签: javascript angularjs

考虑我有一些对象,每个对象都有xyz属性。

现在考虑我有以下Angular ng-repeat:

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

有什么方法可以隐含地使用obj变量,所以我可以这样做:

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

2 个答案:

答案 0 :(得分:2)

根据this answer to a previous question,您尝试做的事情似乎并不是一个好主意。基本上,因为...(切换&#34;块&#34;用于&#34; obj&#34;)

  

(...)块中的所有基元(字符串,整数等)都将被复制   块对象到块作用域对象(...)

这就是像ng-repeat这样的指令制定新范围的基本原因。

我在尝试保存一些按键时看到了你的观点,但它并不像你能做的那样只是复制&amp;粘贴;)

答案 1 :(得分:2)

如果您使用此格式:

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

那么这意味着x,y,z是范围内的变量。因此,冲突会阻止您拥有这样的隐式变量,除非您实际通过辅助函数将该变量放在作用域上,但是!这将在数​​组中每个对象具有相同名称的范围变量之间创建重叠,因此,无论哪种方式都存在命名冲突。

对不起,我通常不会做证明,但希望这可以证明这是不可能的。希望有所帮助!