Knockout'daki Gözlemlenebilir nesneleri klonlamak için ne tür işlemler mekanizması oluşturmanın en iyi yolu nedir? Örneğin
bu modeli düzenleme:
Gözlemlenebilir klonlamanın en iyi yolu nedir?
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);
};
ben kullanıcı tarafından düzenlenemez önce o nesnenin durumunu kurtarmak istiyorum. Kullanıcı düzenleme işlemini iptal ederse - rollback nesne durumu. tıpkı başka proje oluşturun edilir
kolay yoludur:
self.tempAction = new Action(action.name(), action.ownerType(), action.condition(), action.expression(), action.args());
Ama zarif çözüm olduğundan emin değilim ..
Yani, herhangi bir fikir? O taklit jQuery'nin $.extend
işlevi bir fonksiyonu var
İlk:
Orijinal kaynak nesneden yeni hedef nesnesine eşlemek için ko.mapping eklentisini kullanamaz mısınız? – jaffa
@jaffa - evet, haritalama eklentisi uygun bir seçenek olurdu. Ancak önemsiz ihtiyaçlar için aşırı olabilir. Ayrıca, eşleme eklentisinin uygulama genişliğine ihtiyaç duyulmadığı durumlarda 'extendObservable' işlevini oldukça kullanışlı buldum. – ericb
Bu, ko.computed değerleri ile nasıl çalışır? Bir nesneyi kopyalamak için JSON ve JSON.parse kullanarak tüm hesaplama değerlerini kaybedeceğini düşünürdüm. –