我有一个像这样的复杂视图模型:
function DiaryBundleViewModel() {
var self = this;
self.existingJobSearchViewModel = new ExistingJobSearchViewModel(self);
self.DiaryBundle = ko.observable();
self.Appointment = ko.observable();
...
我已将我的视图模型绑定到我的 UI,如下所示:
var vm = new DiaryBundleViewModel();
ko.applyBindings(vm);
在我的视图模型中,我有一个从服务器获取约会的功能。
当我从服务器取回我的结果时,我这样做:
self.Appointment(result);
并且 UI 会更新显示约会的字段。
但是,只有 Appointment 本身是 ko.observable。我的 Appointment 对象上有一些相互关联的属性,我想在 UI 中触发更改。所以,我需要 ko.mapping 插件。
但是,我在纠结如何在这种情况下使用它。
如果我这样做:
self.Appointment = ko.mapping.fromJS(result);
它不起作用,因为 UI 已经绑定到 self.Appointment 并且我刚刚覆盖了它,所以它不会看到变化。
所以,我尝试了:
ko.mapping.fromJS(result, self.Appointment);
但这也不起作用。
我错过了什么?