2016-10-05 5 views
-3

Wenn ich model.files direkt aus meiner Sicht mitAngular schafft einen nicht nativen Array

<input type="file" ng-model= vm.files[0]> 
<input type="file" ng-model= vm.files[1]> 

meine vm.files sieht wie folgt aus (Beispiel A) bevölkern:

enter image description here

Und ich müssen wie dieses (Beispiel B):

enter image description here

Um Beispiel B zu erhalten, muss ich vm.files = new Array() in meinem Controller tun.

Ich möchte den Unterschied zwischen dem Array in Beispiel A und dem Array in Beispiel B wissen?

Gibt es 2 Arten von Arrays in Javascript?

Antwort

1

Es gibt keine "2 Arten von Arrays" in JavaScript, und dies ist nicht "ein nicht natives Array erstellen". Es erstellt ein Objekt files mit den Eigenschaften 0 und 1. Dies wird Object Bracket Notation genannt und tritt in Angular auf, weil Angular jede Eigenschaft als ein Objekt behandelt, es sei denn, es ist anderweitig vor der Zeit definiert; Sie sind richtig, dass Sie vm.files = new Array() zu files als Array vorab verwenden müssen.

1

Gibt es 2 Arten von Arrays in Javascript? Nein.

Das erste Beispiel ist ein Javascript Objekt mit zwei Eigenschaften: 0 und 1. Das zweite Beispiel ist das Javascript Array mit zwei Elementen: das erste und das zweite. Die Unterschiede sind vielfältig: Zum Beispiel hat der Array-Typ die klassischen Methoden splice, push und pop. Für alle Unterschiede empfehle ich Ihnen, this Tutorial zu folgen (und einige grundlegende Javascript auf eigene Faust zu lernen).

+0

Großartig. Und danke für die freundliche Nachricht. – Lev