11
Knockout에서 Observable 객체를 복제하여 일종의 트랜잭션 메커니즘을 만드는 가장 좋은 방법은 무엇입니까? 예를 들어
이 모델을 편집 :
관찰 가능 항목을 복제하는 가장 좋은 방법은 무엇입니까?
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());
하지만 그것은 우아한 해결책이 있는지 모르겠어요 ..
그래서, 어떤 아이디어? 내가 그 모방 jQuery의 $.extend
기능을하는 기능을 가지고
첫째 :
ko.mapping 플러그인을 사용하여 원본 소스 개체에서 새 대상 개체로 매핑 할 수 없습니까? – jaffa
@jaffa - 예, 매핑 플러그인이 적합한 옵션입니다. 그러나 사소한 필요성 때문에 잔인 할 수 있습니다. 또한 매핑 확장 프로그램이 필요하지 않은 상황에서 매우 유용한 'extendObservable' 함수를 발견했습니다. – ericb
ko.computed 값과 어떻게 작동합니까? 나는 toJSON과 JSON.parse를 사용하여 객체를 복사하면 모든 계산 된 값이 손실 될 것이라고 생각합니다. –