knockout.js - 如何使用knockout mapping插件?

标签 knockout.js knockout-mapping-plugin

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

简单的例子:

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.fromJS 函数只支持两个参数,如果第二个参数是一个已经被插件映射的对象,所以它有 "__ko_mapping__" 属性(property)。

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

关于knockout.js - 如何使用knockout mapping插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016663/

相关文章:

css - 在 knockoutjs 中应用 ko.observable 的 css 属性?

knockout.js - 扩展 knockout 可观察数组

knockout.js - MVC 4 knockout 列表

jquery - 如何使用 knockout 映射插件添加新的匿名项目

javascript - 将 div 行绑定(bind)到 observableArray 中的单个项目

javascript - HTML 表格问题导致 knockout

javascript - 可通过继承观察 knockout

javascript - 来自 JSON 对象的动态 Knockout 表

javascript - 在 knockout.js 中从 JSON 数组中获取所有键

knockout.js - KnockoutJS : ko. ToJSON(这个)不起作用?