2015-04-22 10 views
41
$scope.itemarray = ['A', 'B', 'C']; 

Dadurch wird das Array gelöscht, aber das UI wird nicht aktualisiert.So löschen Sie ein Winkelfeld

$scope.itemarray = []; 

das funktioniert gut! Warum?

$scope.itemarray.length = 0; 
+1

Können Sie eine jsfiddle oder ein Beispiel zur Verfügung stellen –

+0

Haben Sie eine Art von 'ng-submit' geschieht vor Ihrem Clear Event vielleicht? Vielleicht fügen Sie das Array irgendwie hinzu und versuchen es dann zu löschen. Ansonsten sollte '= []' gut funktionieren. –

+0

Sie könnten etwas wie das folgende tun: http://jsfiddle.net/9mth0knf/ (geht mit der Antwort von Petr Averyanov) – Chris

Antwort

61

$scope.itemarray.length = 0; < < das ist richtig. Länge ist Lese-Schreib-Eigenschaft.

$scope.itemarray = []; < < Dies erstellt ein neues leeres Array. Wenn Sie Bindungen zu altem Elementarray haben, können diese verloren gehen. (Html-Bindung wie ng-if="itemarray[0]" wird nicht verloren gehen)

+1

Die Länge auf einem Array einstellen zu können, ist bizarr Es ist aber auch die absolut schnellste Möglichkeit, ein Array in JavaScript zu löschen – Enzey