现在,我可以简单地初始化一堆具有默认值的可观察对象,例如......
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)
};
如您所见,这是一吨开销。我还想补充一点,映射库对我来说突出的一个好处是,当属性名称发生变化时,它可以减少一个更新的地方。但是,如果您确实必须显式声明属性名称以指定创建回调,那么该好处就被破坏了。
我错了吗,有一种简单的方法可以解决这个问题吗?