0
세 개의 계단식 드롭 다운 목록을 만들려고합니다. 첫 번째는 프로젝트를 제한하고 두 번째는 선택한 프로젝트의 작업을 포함하고 두 번째는 선택된 작업의 마지막 사이트를 포함합니다.백본 관계형을 사용하여 중첩 구조 만들기
Backbone-Relational 플러그인을 사용하고 싶지만 적절한 관계를 생성하기가 어렵습니다. 이 플러그인으로 처음입니다.
코드 지금까지 :
App.Models.ProjectItem = Backbone.RelationalModel.extend({
default: {
id: 0,
name: ''
},
relations: [{
type: Backbone.HasMany,
key: 'tasks',
relatedModel: App.Models.TaskItem,
//includeInJSON: Backbone.Model.prototype.idAttribute,
collectionType: App.Collections.TasksCollection,
reverseRelation: {
key: 'projectId',
//includeInJSON: Backbone.Model.prototype.idAttribute,
type: Backbone.HasOne
}
}]
});
App.Collections.ProjectsCollection = Backbone.Collection.extend({
model: App.Models.ProjectItem
});
App.Models.TaskItem = Backbone.RelationalModel.extend({
default: {
id: 0,
name: ''
},
relations: [{
type: Backbone.HasMany,
key: 'sites',
relatedModel: App.Models.SiteItem,
includeInJSON: Backbone.Model.prototype.idAttribute,
collectionType: App.Collections.SitesCollection,
reverseRelation: {
key: 'taskId',
//includeInJSON: Backbone.Model.prototype.idAttribute,
type: Backbone.HasOne
}
}]
});
App.Collections.TasksCollection = Backbone.Collection.extend({
model: App.Models.TaskItem
});
App.Models.SiteItem = Backbone.RelationalModel.extend({
default: {
id: 0,
name: ''
}
});
App.Collections.SitesCollection = Backbone.Collection.extend({
model: App.Models.SiteItem
});
단일 프로젝트 만들기 :
var item = new App.Models.ProjectItem({
id: 1,
name: 'project',
tasks: [
{
id: 1,
name: 'task',
sites: [
{
id: 1,
name: 'site'
}
]
}
]
})
JSON으로 직렬화이 객체는 다음과 같습니다
"{"id":1,"name":"task","tasks":[1],"sites":[{"id":1,"name":"site"}],"projectId":null}"
내 질문 :
1) 이유는 사이트 배열이 작업에 중첩되어 있지 않습니까?
2) 사이트 모음은 작업과 동일한 방식으로 일련 화되지 않습니다. 사이트 모델에도 관계를 만들어야합니까?
3) root 용으로 projectId가 반환되는 이유는 무엇입니까?