如何使用挖空映射插件



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

简单的例子:

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/

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

你需要写:

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

演示 JSFiddle。

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

您可以在此处阅读有关不同重载的更多信息:无法使用带有解析存在视图模型的 ko.mapping.fromJSON 解析绑定 js 错误

最新更新