[英]backbone.js - views within views and managing events
组织观点的好方法是什么? 假设我有一个div,它将包含来自用户管理面板视角的视图 - 将会有一个用户列表以及选择一次显示的数量,排序选项,要打开的页面,过滤器,等等...
我想要一个包含除表和数据之外的所有内容的外部视图吗? 然后是一个包含表格的内部视图(以及数据)? 分页会有它自己的看法吗? 分页视图如何使用click事件更新用户视图? 我只是对如何组织视图感到困惑,同时仍然可以让不同的事件触发其他视图来render()
/集合到fetch()
。
所以基本层次结构如下:
- User View
- Table
- List of Users
- Pagination
- List of available numbers to click
- Filters
- Possible filters to apply to the data
然而,在分页中单击过滤器或数字应该能够使集合fetch()
新数据并刷新视图;
我第二次做事。 我会有一个用户集合/视图。 因为您在上面描述的整个层次结构是关于那个用户集合的。 它的所有功能都操纵该集合,然后您重新呈现用户视图。
如果要仅为该用户将更改应用于服务器,则可以将第二个用户视图(单个用户)绑定到模型。
我原来问题的2美分。 如果你真的想让它成为MV *,那么分页就是一个视图,你的表就是一个视图。 让你的收藏发送(触发)事件来改变你的观点。 我会问自己的另一个问题是,当我的收藏改变时会受到什么影响? 例如,在您的情况下,我不认为集合更改会直接影响您的userView,它只影响表和分页。
我尽可能多地反映我的服务器端MVC结构。
可以放入插件的所有内容,我这样做,然后我将这些插件保存在调用插件的控制器的单独位置。 因此,在您的情况下,用户列表的表视图将保存在表插件中,或者可能保存在“用户”模块中,如果它是我实际上只会使用一次的代码。
如果我需要覆盖插件的输出,那么我将视图存储在模块文件夹中。
我试图避免做的是纯粹根据其中的HTML类型存储视图,因此我不会将模块的视图存储为“表”,因为如果稍后它更改为列表将会混淆。 显然,如果我有一个'table'插件,那么该视图将成为一个表,但是更改JavaScript视图意味着只需将插件调用从'table'更改为'list'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.