모델에 모델을 중첩하는 큰 json 서버 응답이 있습니다. 서버를 기반으로 휴식을 취할 방법이 없습니다. json 트리를 컬렉션 내의 컬렉션과 컬렉션으로 파싱해야합니다. 그런 다음 동일한 json 구조의 백본 모델을 수정 한 후 서버로 내보내고 싶습니다. http://documentcloud.github.com/backbone/#FAQ-nested큰 json 데이터를 모델 내부 및 외부에서 파싱
JSON 응답의 최상위 i가 통과 할 수 있었다 있도록 섹션들의 어레이이다
나는 부분이라고 수집 및 둥지 각과 모델 내 질문 컬렉션이 방법을 사용하여이 그 섹션 컬렉션에 직접, 나는 그때 자식 질문을 구문 분석하고 속성에서 그들을 삭제 initialize 메서드를 사용했습니다. 그러나 이것은 모델 컬렉션에있는 모든 toJSON에서 반환 된 model.questions를 얻지 못한다는 것을 의미합니다.
SCC.Models.Section = Backbone.Model.extend({
initialize: function() {
var questions = this.get('questions');
this.questions = new SCC.Collections.Questions(questions);
delete this.attributes.questions;
}
});
SCC.Collections.Sections = Backbone.Collection.extend({
model: SCC.Models.Section
});
SCC.Sections = new SCC.Collections.Sections();
//imagine window.SectionData is the server response
SCC.Sections.reset(window.SectionData);
잘하면 나는 분명히. 더 많은 정보가 필요하면 알려줘.
감사합니다. 그러나
SCC.Models.Section = Backbone.Model.extend({
initialize: function() {
var questions = this.get('questions');
this.questions = new SCC.Collections.Questions(questions);
delete this.attributes.questions;
},
toJSON: function() {
var json = Backbone.Model.prototype.toJSON.call(this);
json.questions = this.questions.toJSON()
return json
}
});
: 당신 통제하에 자주 변경 될 수 없습니다 중첩 된 모델의 제한된 번호가있는 경우