Angular 创建一个非原生数组
Angular creates a non native array
当我用
直接在我的视图中填充 model.files 时
<input type="file" ng-model= vm.files[0]>
<input type="file" ng-model= vm.files[1]>
我的 vm.files 看起来像这样(示例 A):
我需要这样(示例 B):
为了获得示例 B,我必须在我的控制器中执行 vm.files = new Array()
。
我想知道示例 A 中的数组与示例 B 中的数组之间的区别?
javascript 中是否有 2 种类型的数组?
JavaScript 中没有“2 种类型的数组”,这也不是 "creating a non native array"。它正在创建具有属性 0
和 1
的对象 files
。这称为 Object Bracket Notation
,它出现在 Angular 中,因为 Angular 将每个 属性 视为一个对象,除非它被提前定义;您是正确的,您需要使用 vm.files = new Array()
来 预分配 files
作为数组。
javascript中有两种类型的数组吗?没有。
第一个例子是一个 javascript 对象 有两个属性:0
和 1
.
第二个例子是 javascript 数组,有两个元素:第一个和第二个。
区别很多:比如数组类型有经典的splice
、push
和pop
方法。对于所有差异,我建议您遵循 this 教程(并自己学习一些基本的 javascript)。
当我用
直接在我的视图中填充 model.files 时<input type="file" ng-model= vm.files[0]>
<input type="file" ng-model= vm.files[1]>
我的 vm.files 看起来像这样(示例 A):
我需要这样(示例 B):
为了获得示例 B,我必须在我的控制器中执行 vm.files = new Array()
。
我想知道示例 A 中的数组与示例 B 中的数组之间的区别?
javascript 中是否有 2 种类型的数组?
JavaScript 中没有“2 种类型的数组”,这也不是 "creating a non native array"。它正在创建具有属性 0
和 1
的对象 files
。这称为 Object Bracket Notation
,它出现在 Angular 中,因为 Angular 将每个 属性 视为一个对象,除非它被提前定义;您是正确的,您需要使用 vm.files = new Array()
来 预分配 files
作为数组。
javascript中有两种类型的数组吗?没有。
第一个例子是一个 javascript 对象 有两个属性:0
和 1
.
第二个例子是 javascript 数组,有两个元素:第一个和第二个。
区别很多:比如数组类型有经典的splice
、push
和pop
方法。对于所有差异,我建议您遵循 this 教程(并自己学习一些基本的 javascript)。