我有一个案例,我将数据绑定到列表中模型内的日期字段:
function Model(data) {
var self = this;
ko.mapping.fromJS(data, {}, this);
}
<div id="fieldOnPage" data-bind="text: formatDate(myDateField())"></div>
然后,在一个模态中,我显示相同的日期字段,以便进行编辑:
<div id="fieldInModal" data-bind="text: formatDate(myDateField())"></div>
但是,因为我正在调用formatDate函数,它在unwrapped observable上工作,所以当我编辑模态中的值时,我无法看到更改实时写回主页面。
另一个警告是我使用ko.mapping插件,所以我不一定在myDateField上有一个特定的ko.computed字段。这可能与这样的外部函数有关吗?如果没有,如果我必须专门覆盖myDateField绑定,我将如何使用ko.computed?
答案 0 :(得分:1)
您可以执行类似
的操作function Model(data) {
var self = this;
ko.mapping.fromJS(data, {}, this);
this.formattedDate = ko.computed(function () {
return formatDate(ko.utils.unwrapObservable(self.myDateField));
});
}
绑定到格式化的日期
<div id="fieldInModal" data-bind="text: formattedDate"></div>
希望这有帮助。