考虑我有一些对象,每个对象都有x
,y
和z
属性。
现在考虑我有以下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>
答案 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是范围内的变量。因此,冲突会阻止您拥有这样的隐式变量,除非您实际通过辅助函数将该变量放在作用域上,但是!这将在数组中每个对象具有相同名称的范围变量之间创建重叠,因此,无论哪种方式都存在命名冲突。
对不起,我通常不会做证明,但希望这可以证明这是不可能的。希望有所帮助!