Jee*_*evi 34 model-view-controller backbone.js
我是Backbone.js的新手.我已经完成了文档.我的问题是控制器概念在哪里出现?换句话说,Backbone.js中的控制器是什么?
我听说路由器是控制器.如果是这样,为什么它被视为控制器?我们可以开发没有路由器的简单基本应用程序吗?在那种情况下,控制器是什么?
bad*_*wym 40
在这里清楚一点.路由器不是控制器,它是一种定义客户端路由映射的方法(类似于Rails的routes.rb).这有助于将客户端页面路由到某些操作/处理程序.这与控制器的工作不同,即在模型和视图之间提供一些编排.实际上,使用Backbone实现这一目的的方法不止一种.引用Backbone的文档:
模型和视图之间的引用可以通过多种方式处理.有些人喜欢直接指针,其中视图与模型(model.view和view.model)1:1对应.其他人更喜欢拥有中间"控制器"对象,这些对象将视图的创建和组织编排成层次结构.其他人仍然喜欢这种方法,并且总是触发事件而不是直接调用方法.所有这些风格都很好用.
这带来了三种不同的方法来实现这一点.第一个非常简单,就是将模型对象作为视图的属性包含在内.
第二个建议包括执行编排角色的第三个组件.我相信这对于相当大而复杂的应用程序会有所帮助.为此,我建议您查看使用Backbone.js的示例应用程序架构Chaplin.这些人在分离事物方面做得很好,并且还将Controller的概念引入了架构中.
最后一种方法是建议使用事件来标记操作,使用中介来处理这些操作.为此,我建议您查看介体和发布/订阅JavaScript模式.
Rad*_*dek 12
查看Addy Osmani关于客户端MV*的文章:
http://addyosmani.com/blog/understanding-mvc-and-mvp-for-javascript-and-backbone-developers/
来自文章:
在Backbone中,与Backbone.View和Backbone.Router共享控制器的责任.
和
在这方面,与官方文档或博客文章中可能提到的相反,Backbone既不是真正的MVC/MVP也不是MVVM框架.
它更类似于iOS Cocoa Touch框架的工作方式,你不应该像后端MVC那样考虑它,骨干团队本身甚至从未在他们的网站上提到MVC,以避免人们在从后端MVC传来时产生混淆.主干中的View是在iOS中调用的一个ViewController/AppController,通常你的主AppController将是一个View,它为你的应用程序设置主包装器,通常你也可以用作主应用程序逻辑的全局发布/订阅系统和控制器. .
路由器正是它所说的 - 它将路由转换为一组参数并将它们传递给app控制器以确定如何处理它们,加载哪个子视图等(或者如果应用程序不太复杂,它可以加载/更改视图直接从路由器级别) - 它曾经被称为控制器,但它被重命名(0.5我相信?),以清除这种混乱.
至少这是我们的方法 - 如果你在野外检查了多个教程,你可能已经看到,当涉及到Backbone时,有许多方法可以解决这个问题.这就是Backbone的美妙之处!:)
| 归档时间: |
|
| 查看次数: |
16239 次 |
| 最近记录: |