这是backbone.js MVC模式的正确实现吗?

时间:2011-07-05 08:56:23

标签: model-view-controller backbone.js

我正在使用 backbone.js 重构一个旧应用。

当通过TodoList tuto时,我仍然不确定一切应该如何组合在一起。

现在,我有:

  • 初始化的GlobalController,它处理全局应用程序范围的路由&其他对象初始化。

  • GlobalController初始化GlobalAppView(全局应用范围内的操作,例如如何处理ajax点击)&之后,我的应用程序中的所有其他控制器。

  • Thoses控制器(如TagController)初始化自己的集合(BlueTagList& a RedTagList扩展App.TagList集合),存储在window命名空间(它应该在控制器命名空间中吗?)。

  • 然后,在我的视图中的某处调用控制器TagsController->render('BlueTagListView', {el: '#container', collection : BlueTagList, data : ...});

这个方案有没有流量? 感谢。

1 个答案:

答案 0 :(得分:1)

我个人认为,如果Backbone.js重新命名了一些东西,情况会更清楚。

Models      ->  Models
DOM subtrees->  Views ( view.el in the backbone case )
Views       ->  Controllers
Controllers ->  HashchangeController ( A specialized type of controller )

Backbone.js是一个MVC框架,但它只是一个有点奇怪的命名约定。它有点暗示你必须使用Backbone.Controller或者你只是做一个模型/视图。但是不要感到有压力要这样做。

没有Backbone.Controller构建应用程序是完全可以的,除非你 真的需要可收藏的链接。如果你那么冷却,但这不是绝对必要的。 URL栏只是页面上的另一个小部件,您可以编写控制器来响应。

或许考虑上面的组件会让您更轻松。