2016-04-25 14 views
0

Ich habe ein Viewmodel mit einer Eigenschaft als Observable. Ich habe eine Liste von Eigenschaftsnamen und Fehlern, die von der serverseitigen Validierung zurückgegeben werden. Ich muss anhand des Eigenschaftsnamens auf die Observable zugreifen und die Fehler festlegen. Ich möchte das generisch machen.Knockout Zugriff dynamisch beobachtbar basierend auf Name der Eigenschaft

Ansichtsmodell:

var model = ko.validatedObservable({reason: ko.observable()}); 

brauche ich so etwas wie dies zu tun:

var propName = "reason"; 
model[propName]("Something random"); 

Kann ich die beobachtbaren auf diese Weise Zugriff auf dynamisch? (funktioniert nicht).

Antwort

0

Denken Sie so: "Modell" ist eine beobachtbare Variable, die mit einem Objekt geladen ist. Das legt nahe, wir die beobachtbaren zuerst lesen sollten, und dann die Objekteigenschaft zuzugreifen:

var model = ko.validatedObservable({ reason: ko.observable() }); 
var propName = "reason"; 
model()[propName]("Something random"); 

Hinweis lese ich Modell als beobachtbar (Modell()), und dann die Objekteigenschaft Zugriff (Modell() [propName ]).

Verwandte Themen