backbone.js - 视图内的视图和管理事件

时间:2011-04-17 15:50:37

标签: javascript jquery backbone.js underscore.js

组织观点的好方法是什么?假设我有一个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()新数据并刷新视图;

3 个答案:

答案 0 :(得分:3)

我是第二个dogenpunk。我会有一个用户集合/视图。因为您在上面描述的整个层次结构是关于那个用户集合的。它的所有功能都操纵该集合,然后您重新呈现用户视图。

如果您只想为该用户的服务器应用更改,则可以将第二个用户视图(一个用户)绑定到模型。

答案 1 :(得分:0)

我尽可能多地反映我的服务器端MVC结构。

可以放入插件的所有内容,我这样做,然后我将这些插件保存在调用插件的控制器的单独位置。因此,在您的情况下,用户列表的表视图将保存在表插件中,或者可能保存在“用户”模块中,如果它是我实际上只会使用一次的代码。

如果我需要覆盖插件的输出,那么我将视图存储在模块文件夹中。

我试图避免做的是纯粹按照其中的HTML类型存储视图,因此我不会将模块的视图存储为“表”,因为如果稍后它更改为列表将会混淆。显然,如果我有一个'table'插件,那么该视图将成为一个表,但是更改JavaScript视图意味着只需将插件调用从'table'更改为'list'。

答案 2 :(得分:0)

我原来问题的2美分。如果你真的想让它成为MV *,那么分页就是一个视图,你的表就是一个视图。让你的收藏发送(触发)事件来改变你的观点。我会问自己的另一个问题是,当我的收藏改变时会受到什么影响?例如,在您的情况下,我认为集合更改不会直接影响您的userView,它只影响表和分页。