【问题标题】:What is the difference between create and update with customizing mapping in knockout?在淘汰赛中使用自定义映射创建和更新有什么区别?
【发布时间】:2012-11-29 06:53:30
【问题描述】:
 var repo = {
     desc: 'this is repo desc.',
     title: 'this is title.',
     job: { jobId: 1, description: 'job desc', status: 'Done', workAllowed: 'Yes' },
     fault: { faultId: 1, jobId: 1, faultDescription: 'some thing', removed: 1, },
 };

 var mappingSettings = {
        'job': {
            create: function (options) {
                options.data.status = "this has been created.";
                return options.data;
            },
            update: function(options) {
                options.data.status = "this has been updated";
                return options.data;
            }

        }
    };


    $(document).ready(function () {
        viewModel = ko.mapping.fromJS(repo, mappingSettings);
        ko.applyBindings(viewModel);
    });

当我使用 mappingSetting 将 repo 映射到 viewModel 时,我发现 viewModel.status:"this has been updated"

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:

    创建是第一次创建模型时,如果再次映射则更新触发器。

    http://jsfiddle.net/pHQ9t/

    viewModel = ko.mapping.fromJS(repo, mappingSettings);
    
    
    //Update again
    ko.mapping.fromJS(repo, mappingSettings, viewModel);
    

    【讨论】:

    • 我使用了 viewModel = ko.mapping.fromJS(repo, mappingSettings);但它是 job.status 是“已更新”。表示它也在调用更新。
    • 是的,第一次调用创建和更新,下次只更新
    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多