繁体   English   中英

Javascript MVC-单独的逻辑

[英]Javascript MVC - separate logic

我目前将自己的设置用于Javascript中的MVC框架,但对于将HTML事件处理程序放置在何处这一事实感到有些困惑。

像单击/鼠标/焦点事件之类的东西,可以将此事件逻辑附加到控制器中。

现在,我是这样的:

  • Some-module.model.js
  • Some-module.view.js(我在其中附加用户事件,例如鼠标事件,焦点等)
  • Some-module.view.tpl(这是将HTML放置在脚本标签之间,微型模板引擎中的位置)
  • Some-module.controller.js

因此,将视图的单击处理程序附加到控制器是否明智? 还是那个坏习惯?

将事件处理程序放入控制器类中不是一个坏习惯。 实际上, JavaScriptMVC库使用Controller类来组织所有事件处理程序(尽管这不是Controller类的唯一目的)。

将事件处理程序放在View类中也不是坏习惯,因为Backbone.js使用它来组织与特定DOM元素关联的所有事件处理程序。

有很多前端MVC设计模式,没有一种样板可完美适合每种情况。

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

关注点分离

顺便说一句: Controller是MVC中的一种keyword ,您可能希望将js文件名更改为其中没有控制器的名称。

好的,谢谢大家!

我要做的是:

/ controllers /-> some-module.js

/ models /-> some-module.js(保存数据,跟踪状态,检索数据)

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

/ templates /-> some-module.tpl(脚本标签中的实际视图类似于胡子或Jquery模板,使我可以在模板中使用变量标签)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM