KO 사이트 (http://jsfiddle.net/rniemeyer/gZC5k/)에 제공된 중첩 편집기의 라이브 예제를 확장하여 레이아웃을 변경하고 더 깊은 레벨을 추가하려고 시도 할 때 두 가지를 처리 할 수 없었습니다 문제.중첩 된 편집기로 3 개 이상 누락되었습니다.
나는
var ContactsModel = function (contacts) {
var self = this;
self.contacts = ko.observableArray(ko.utils.arrayMap(contacts, function (contact) {
return {
firstName: contact.firstName,
lastName: contact.lastName,
phones: ko.observableArray(contact.phones),
addresses: ko.observableArray(contact.addresses)
};
}));
두 문제
은,이 단계 http://jsfiddle.net/gZC5k/955/내가 모델의 올바른 계층 구조를 구축하는 곳으로 붙어있어 얻을 수 있었지만 :
- 초기 데이터 세트에로드 된 "전화"에 새 "전화"를 추가 할 수 없음 (새 전화를 만들 때 "전화"를 추가 할 수 있음)
"전화"를 삭제할 수 없습니다.
self.removeCall = function (call) { $.each(self.phones(), function() { this.calls.remove(call) })
}};
도움을 주시면 감사하겠습니다.
감사합니다. @ 보스! 저것을 완전히 간과했다. Remove 함수를 html로 전송하여 더욱 최적화되어 전체 객체 트리를 순회 할 필요가 없습니다. 데이터가 많이있을 때 더 빠를 것이라고 추측합니다. – Graphileon
감사합니다 @ 보스 최종 결과는 여기에 있습니다 http://jsfiddle.net/gZC5k/990/ – Graphileon