11
在Knockout中克隆Observable對象以創建一種事務機制的最佳方法是什麼?
例如編輯這種模式:
克隆observables的最佳方法是什麼?
var Action = function (name, ownerType, condition, expression, args) {
var self = this;
this.name = ko.observable(name);
this.ownerType = ko.observable(ownerType);
this.condition = ko.observable(condition);
this.expression = ko.observable(expression);
this.args = ko.observable(args);
};
我要保存對象的狀態之前,用戶將編輯。如果用戶將取消編輯 - 回滾對象狀態。
簡單的方法是創建一個像另一個項目:
self.tempAction = new Action(action.name(), action.ownerType(), action.condition(), action.expression(), action.args());
但我不知道它是優雅的解決方案..
因此,任何想法?
難道你不只是使用ko.mapping插件從原始源對象映射到新的目標對象? – jaffa
@jaffa - 是的,映射插件將是一個合適的選項。然而,對於微不足道的需求來說,這可能是過度的。另外,我發現'extendObservable'函數在映射插件不需要應用程序範圍的情況下非常有用。 – ericb
這是如何與ko.computed值一起使用的?我會認爲使用toJSON和JSON.parse複製一個對象將失去其所有計算值。 –