【问题标题】:how to use knockout mapping plugin?如何使用淘汰赛映射插件?
【发布时间】:2014-01-09 17:51:54
【问题描述】:

我想使用插件来填充数据,但没有填充值。

简单示例:

var data = {
    Type: 1,
    Id: "123-12321"
};

var RiskItemModel = function (item) {
    var self = this;
    self.Id = ko.observable("tes");
    self.Type = ko.observable(); //enum int


    if (item) {
      // DATA SHOULD BE POPULATED HERE, but no effect
      ko.mapping.fromJS(item, this);
    };
};

var model = new RiskItemModel(data);
ko.applyBindings(model);

// I HAVE TRIED THIS ALSO, NO EFFECT
//ko.mapping.fromJS(data, model);

HTML:

<div>
    <pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
</div>

JSFidde:http://jsfiddle.net/wLbV6/

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:

    您没有使用正确的 ko.mapping.fromJS 函数重载。

    你需要写:

    ko.mapping.fromJS(item, {} /* mapping options */, this);
    

    演示JSFiddle.

    ko.mapping.fromJS 函数仅适用于仅提供两个参数的情况下,如果第二个参数是已由插件映射的对象,因此它具有 "__ko_mapping__" 属性。

    您可以在此处阅读有关不同重载的更多信息:Unable to parse bindings js error using ko.mapping.fromJSON with parse exist view model

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2013-07-16
      • 1970-01-01
      • 2013-05-27
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 2012-12-05
      相关资源
      最近更新 更多