Ich möchte ein Objekt in einem Objekt-Array zu aktualisieren. Gibt es eine andere Möglichkeit als über alle Elemente zu iterieren und die passende zu aktualisieren? Der aktuelle Code sieht wie folgt aus:Angular Update-Objekt in Array
angular.module('app').controller('MyController', function($scope) {
$scope.object = {
name: 'test',
objects: [
{id: 1, name: 'test1'},
{id: 2, name: 'test2'}
]
};
$scope.update = function(id, data) {
var objects = $scope.object.objects;
for (var i = 0; i < objects.length; i++) {
if (objects[i].id === id) {
objects[i] = data;
break;
}
}
}
});
Was die Ansicht aussehen wird? Wenn Sie einen Verweis auf das Objekt haben, an dem Sie 'update()' aufrufen, übergeben Sie das Objekt anstelle der ID. –
zu Anthony's Vorschlag hinzufügen .. 'ng-click =" update (obj, data) "' anstelle von 'ng-click =" update (obj.id, data) " –
Wollen Sie auch die ID vorher überprüfen? hinzufügen? Ich glaube, das ist in Ihrem Fall nicht nötig? – Asik