0

在本教程中,我看到他们从模型中调用视图中的 3 个。

在我见过的所有图表中,都应该有一个控制器来调解这种交互。

我没有抱怨,但他们是否违反了严格的 MVC 模式?

就跟踪依赖而言,控制器应该依赖于模型和视图。

模型和视图应该相互独立并且独立于控制器。

Backbone 是否打破了 MVC 模式?

4

2 回答 2

4

无论如何,Backbone 都不是 MVC。视图充当了一个控制器,破坏了 MVC 关注点分离的目的。

此外,(视图/控制器)包含在严格的 MVC 中将保留在模型中的逻辑。

从常见问题解答 http://backbonejs.org/#FAQ-mvc

Backbone 与“传统”MVC 有何关系?模型-视图-控制器模式的不同实现往往对控制器的定义存在分歧。如果有帮助的话,在 Backbone 中,View 类也可以被认为是一种控制器,调度源自 UI 的事件,而 HTML 模板作为真正的视图。我们称它为 View 是因为它代表 UI 的逻辑块,负责单个 DOM 元素的内容。

于 2012-09-28T20:51:43.900 回答
1

对不起,Hiro,但我不得不不同意你的看法。Backbone.js 可以非常 MVC,但这完全取决于您如何实现它。问题是大多数的backbone.js 示例只显示视图事件绑定到该视图中的方法,但是有两种方法可以绕过这个来完成MVC 模式。

第一个是简单地将视图中的所有事件/按钮替换为路由器可以轻松获取的 hashbang URL 链接,或者您可以让您的事件方法定义调用控制器中的适当方法并传递参数。

正如 ertume 所说,你永远不应该从模型中调用视图。

于 2012-10-01T16:26:44.497 回答