【问题标题】:How to update a property in an Javascript Object with ko.mapping - Knockout?如何使用 ko.mapping - Knockout 更新 Javascript 对象中的属性?
【发布时间】:2013-10-23 14:50:11
【问题描述】:

假设我们有以下对象:

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.,我使用了以下代码:

// 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 中没有任何更新。 请指导我如何更新上述示例中的KoEntityViewModel.EntityModel

【问题讨论】:

    标签: javascript knockout.js mapping


    【解决方案1】:

    在应用绑定后更新映射时,使用三个参数:

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

    【讨论】:

    • 您能描述更多吗? data 变量是什么?
    • @Mohammad 对不起,我猜你的情况应该是receivedData{} 用于传递选项。文档不是很好。
    • 对不起,我不太明白:-(,我应该写什么而不是{},我应该写EntityModel
    • 没什么,留空就行。它是第二个参数的占位符。我发布的代码应该可以正常工作。
    • 我搞定了,写法是ko.mapping.fromJS(receivedData, {}, KoEntityViewModel.EntityModel);
    猜你喜欢
    • 2012-07-08
    • 2012-03-16
    • 2016-07-13
    • 2021-08-12
    • 2019-05-02
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多