次のような複雑なビュー モデルがあります。
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);
しかし、それもうまくいきません。
私は何が欠けていますか?