Javascript 使用backbone.js组织子视图?
很抱歉,我是一个有主心骨的新手,但我想我了解这些概念 例如:您有书店>书架>书籍>页面的模型 您将如何组织这些视图,以便可以像这样控制视图:Javascript 使用backbone.js组织子视图?,javascript,node.js,backbone.js,Javascript,Node.js,Backbone.js,很抱歉,我是一个有主心骨的新手,但我想我了解这些概念 例如:您有书店>书架>书籍>页面的模型 您将如何组织这些视图,以便可以像这样控制视图: Bookstore.render() //to view the bookstore Bookstore.bookshelf.get(shelfId).render() //to view shelf Bookstore.bookshelf.get(shelfId).book.get(bookId).render() //to view book Book
Bookstore.render() //to view the bookstore
Bookstore.bookshelf.get(shelfId).render() //to view shelf
Bookstore.bookshelf.get(shelfId).book.get(bookId).render() //to view book
Bookstore.bookshelf.get(shelfId).books.get(bookId).pages.at(0).render() //to view page
这是正确的方法吗?是的,这是可能的,我为您创建了一个工作示例,我认为这只是组织主干JS架构的另一种方法,我认为这是一个非常好的主意 解释 所有型号必须具备:
- 调用其视图的
方法的render
方法。我为书架、书籍和页面模型创建了一个扩展的基础模型render
- 一个
方法,它创建集合(书架上的书,书本上的页…)initialize
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()
此处提供了带注释的代码:
我认为最好的事情是理解代码是如何工作的。请随时问我,如果你有问题,完全理解我的代码
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' },
]
}
]
}
]
};
@Alley,您想要做的事情与MVC模式背道而驰,因为您的模型对象必须与视图无关。 @Atinux answer可能有效,但在视图和模型对象之间引入了直接依赖关系 所有表示方法都必须驻留在视图对象中。视图和模型之间的通信必须使用事件完成。 因此,不要这样做:Bookstore.bookshelf.get(shelfId.render()) 您应该按照以下思路做一些事情:bookshelfView.render()