2013-10-15 48 views
1

假设我们有以下对象:如何使用ko.mapping更新Javascript对象中的属性 - 敲除?

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); 

上面的代码工作,更新我用下面的代码KoEntityViewModel.:在KoEntityViewModel.EntityModel

// 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(); 
}; 

但没有更新。 请指导我如何上面的示例中更新KoEntityViewModel.EntityModel

回答

1

当您更新应用绑定后的映射,使用三个参数:

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

能否请您介绍更多?什么是数据变量? –

+0

@Mohammad对不起,我想这将是'receivedData'在你的情况。 '{}'用于传递选项。文档在这方面不太好。 – woz

+0

抱歉,我无法理解:-(我应该写什么而不是'{}',我应该写'EntityModel' –

相关问题