JavaScriptMVC-独立逻辑

JavaScriptMVC-独立逻辑,javascript,model-view-controller,Javascript,Model View Controller,我目前在Javascript中使用我自己的MVC框架设置,但我对应该将HTML事件处理程序放在哪里感到有点困惑 像click/mouse/focus事件之类的,可以将此事件逻辑附加到控制器中 现在,我有这样的想法: Some-module.model.js Some-module.view.js(我在其中附加我的用户事件,如鼠标事件、焦点等) Some-module.view.tpl(这是HTML放在脚本标记和迷你模板引擎之间的地方) Some-module.controller.js 那么

我目前在Javascript中使用我自己的MVC框架设置,但我对应该将HTML事件处理程序放在哪里感到有点困惑

像click/mouse/focus事件之类的,可以将此事件逻辑附加到控制器中

现在,我有这样的想法:

  • Some-module.model.js
  • Some-module.view.js(我在其中附加我的用户事件,如鼠标事件、焦点等)
  • Some-module.view.tpl(这是HTML放在脚本标记和迷你模板引擎之间的地方)
  • Some-module.controller.js

那么,将视图的单击处理程序附加到控制器中是否明智?还是这种做法不好?

将javascript和所有DOM操作保存在
js
文件中


顺便说一句:
Controller
在MVC中有点像
关键字
,您可能需要将js文件名更改为一个没有控制器的名称。

将事件处理程序放在控制器类中并不是一个坏做法。事实上,JavaScriptMVC库使用一个控制器类来组织所有事件处理程序(尽管这不是控制器类的唯一用途)


将事件处理程序放在视图类中也是一种不错的做法,因为Backbone.js使用它来组织与特定DOM元素关联的所有事件处理程序

有很多前端MVC设计模式,并且没有一个样板可以完全适合每种情况

好的,谢谢大家

我要做的是:

/控制器/ ->some-module.js

/模型/ ->some-module.js (保存数据、跟踪状态、检索数据)

/观点/ ->some-module.js (附加DOM事件、DOM操作将检索模板TPL文件并使用它)

/模板/ ->some-module.tpl (脚本标记中的实际视图类似于Mustach或Jquery模板,允许我在模板中使用变量标记)

这将保持我的应用程序的组织和模块化


我可以考虑在控制器内部处理DOM事件,但我也需要一个位置来执行DOM操作(更改类名,改变内层HTML值等),并且我认为控制器不是正确的方法。

我认为这正是视图控制器类所适用的,是的。但是控制器是一个JS文件。。。控制器不关心如何控制与视图的交互?我将“控制器”保留在文件名中,很高兴看到我在开发时编辑的是什么类型的文件。部署站点时,所有JS文件将自动合并。但是“将所有DOM操作保存在JS文件中”是什么意思呢?@barry。比如
$('.foo').addClass('bar').val('a value')
$('#foo')。更改()
$('#foo').hide()
etc'@gdoron:DOM操作进入视图部分,对吗?和附加单击事件,也在视图内?在这种情况下,我有两个视图,一个模板,一个用于附加用户事件和DOM操作?@barry。一两个文件并不重要。我建议将它放在视图中的
js
文件中。不是直接在视图中。