Ich arbeite an einer ASP.Net MVC-Anwendung. Meine Aktion gibt eine Ansicht mit einem Modell zurück, das ein Array von Objekten ist (eine Klasse mit Eigenschaften wie Name, ID, IsViewable).
var model = @Model.ToJson(); // done via extension call
Ich möchte dieses Array beobachten, damit ich bei jeder Änderung eine Tabelle aktualisieren kann, die an eine Vorlage gebunden ist.
var viewModel = {
accounts = ko.observableArray(model)
}
Für das Hinzufügen und Löschen von Elementen aus dem Array funktioniert das sehr gut. Allerdings möchte ich auch die Vorlage zu aktualisieren, wenn eine Eigenschaft in einem der Konten ändert (dh, Name oder ID).
Auf der KnockoutJS-Website heißt es dazu: Natürlich können Sie diese Eigenschaften beobachtbar machen, wenn Sie es wünschen, aber das ist eine unabhängige Entscheidung. . Das ist es, was ich nicht herausfinden kann, wie man es macht.
Ich habe etwas Ähnliches versucht, ohne Erfolg:
var viewModel = {
accounts = ko.oservableArray([])
}
for(var i = 0; i < model.length; i++) {
ko.observableArray(model[i]);
viewModel.accounts.push(model[i]);
}
Ich kann die Vorlage und die Tabelle posten, wenn sie benötigt wird.