奇怪的ng模型行为(ng-model映射到数组元素)

时间:2015-09-18 20:40:09

标签: javascript arrays angularjs

当你有ng-model这样的声明时,正确的行为应该是什么?

data-ng-model="elements[0]"

它的工作方式,如果elements已经在作为数组的作用域中定义,它就像我期望分配数组的第一个元素一样。

但如果未声明elements,则会指定此值:

elements = {0:'anyvalue'}

(如果我写了data-ng-model="elements['0']"

,这是有道理的

在这种情况下:

elements[0]='anyvalue';
elements['0']='anyvalue';

我无法使用" dot"来阅读自制的价值。符号(elements.0elements.'0')。

所以它看起来很正确,但有点奇怪。

这种行为是否正确,或者在未定义范围变量时应该实例化数组?

1 个答案:

答案 0 :(得分:1)

数组只是一种特殊类型的对象。如果在调试器中查看数组,则所有值都将列为具有数字键的属性,如您显示的那些。如果您不将对象初始化为数组,它仍然会以相同的方式访问对象,这意味着您现在拥有一个带有数字键的对象,而没有来自Array原型的有用函数。