是的,这是可能的,我为您创建了一个可行的示例。我认为这只是组织Backbone JS架构的另一种方法,而且我认为这是个相当好的点子。
说明
所有的模型必须有:
最后,我实例化了Bookstore模型,就完成了!
代码
演示:http://jsfiddle.net/Atinux/DvbA3/show/
在控制台中尝试:
Bookstore.render()
Bookstore.bookshelves.get(1).render()
Bookstore.bookshelves.get(1).books.get(2).render()
Bookstore.bookshelves.get(1).books.get(2).pages.at(0).render()
这里提供了带有注释的代码:http://jsfiddle.net/Atinux/DvbA3/
我认为最好的方法是理解代码的工作原理。如果你在理解我的代码时遇到问题,请随时问我。
JSON数据
JSON数据应该长成这样:
var data = {
bookshelves: [{
id: 1,
name: 'Science',
books: [{
id: 1,
name: 'Abstract Algebra',
pages: [
{ content: 'Page 1 Abstract'},
{ content: 'Page 2 Abstract'},
{ content: 'Page 3 Abstract'}
]
}, {
id: 2,
name: 'Chemistry and Technology of Fertilizers',
pages: [
{ content: 'Chemistry page 1' },
{ content: 'Chemistry page 2' },
{ content: 'Chemistry page 3' }
]
}
]
}, {
id: 2,
name: 'Psychology',
books: [{
id: 1,
name: 'How to Think Straight About Psychology',
pages: [
{ content: 'Psychology page 1' },
{ content: 'Psychology page 2' },
]
}
]
}
]
};