【发布时间】:2012-11-06 20:31:50
【问题描述】:
现在,我可以简单地初始化一堆带有默认值的 observable,比如...
self.a = ko.observable(data.A || "");
self.b = ko.observable(data.B || "");
self.c = ko.observable(data.C || "");
但如果我想做类似的事情
var ViewModel = ko.mapping.fromJS(data)
并设置默认值,我该怎么做?
我真的必须做类似的事情吗
var ViewModel = function(data) {
ko.mapping.fromJS(data, {
c: {
create: function(options) { return ko.observable(options.data.c || "") }
};
}, this)
};
如您所见,开销很大。我还想补充一点,映射库对我来说突出的一个好处是,当属性名称发生变化时,它可以减少一个更新的地方。但是,如果您确实必须显式声明属性名称以指定创建回调,那么该好处就被破坏了。
我错了吗?有一种简单的方法可以解决这个问题吗?
【问题讨论】:
标签: knockout.js knockout-mapping-plugin