2013-10-15 3 views
1

Supposons que nous avons l'objet suivant:Comment mettre à jour une propriété dans un objet Javascript avec ko.mapping - Knockout?

var gridViewModelJs = 
    {"GridViewModel":{"Rows":[{"RowNumber":"1","Id":"6","Name":"FullNameOfUser","NumberOfUsers":"12","RegistrationDate":"10/15/2013"}],"FoundItems":"4","CurrentPage":1,"TotalPages":1,"ItemsPerPage":50,"PagingLinks":""}, 
    "EntityModel":{"Id":0,"PermissionIds":null,"Name":null,"NumberOfUsers":0,"PersianRegistrationDate":null,"RegistrationDate":"0001-01-01T00:00:00","Authorizations":null,"Users":null,"Contents":null}}; 
var KoEntityViewModel = ko.mapping.fromJS(gridViewModelJs); 
ko.applyBindings(KoEntityViewModel); 

code ci-dessus fonctionne, pour la mise à jour du KoEntityViewModel. je le code suivant:

// receivedData is data that returns from jQuery Ajax 
// I'm dead sure `receivedData` is correct 
var doneFunc = function (receivedData) { 
    ko.mapping.fromJS(receivedData, KoEntityViewModel.EntityModel); 
    showDetailsBlock(); 
}; 

Mais rien dans la mise à jour KoEntityViewModel.EntityModel. S'il vous plaît me guider comment je peux mettre à jour KoEntityViewModel.EntityModel dans l'échantillon ci-dessus

Répondre

1

Lorsque vous mettez à jour le mappage après l'application de fixations, utilisez trois paramètres:

ko.mapping.fromJS(receivedData, {}, KoEntityViewModel); 
+0

Pourriez-vous s'il vous plaît décrire plus? Qu'est-ce que la variable 'data'? –

+0

@Mohammad Désolé, je suppose que ce serait 'receivedData' dans votre cas. Le '{}' est pour passer des options. La documentation n'est pas géniale à ce sujet. – woz

+0

désolé, je ne pouvais pas bien comprendre :-(, que dois-je écrire au lieu de '{}', devrais-je écrire 'EntityModel' –

Questions connexes