1

回复:1

如本SO Post所述,它们并不相互排斥

这是与此更一般的SO Post相关的特定问题

然而,控制器应该路由来自用户的所有呼叫。我通过初始化我的元素(设置 addEventListener)并让它们调用模型来做到这一点。

例如:(来自我的控制对象)

signin_input.addEventListener( "keypress", function( event )
{ 
    if( event.keyCode === 13 )
    {
        new ModelType( 'signin' ).invoke();
        return false; 
    }

}, false );

但是随着我的网站的增长,我的控制器变得越来越大。

我可以做的一件事是将初始化移动到它各自的模块中。例如,我的登录逻辑位于一个名为 ModelType 的对象中。初始化在对象 Control 中。

为了减小 Control 的大小,我可以将初始化移到 ModelSignIn 中。

或者我可以将我的控制器对象分解为多个对象 - ControlPage1、ControlPage2 等。

哪种方式最好或其他方式最好?

将初始化移动到相关对象的一个​​好处是,现在该对象是自包含的,您可以将其复制粘贴到其他应用程序中。缺点是这似乎打破了 MVC 模式。

4

1 回答 1

1

由于已经好几天了,没有其他人提供答案,我会试一试。虽然我没有尝试在 JavaScript 中使用 MVC 模式,但我已经将它用于 PHP,所以它也许也适用于你的框架。

对于我用 PHP 设计的 MVC,我使用 htaccess 通过加载默认控制器(基本控制器框架)的索引来路由所有 php 文件,然后使用请求的文件名查看是否有任何子控制器(可能有也可能没有覆盖默认的某些功能或属性)。

控制器将加载默认模型和视图(以及与请求页面相关的任何子模型/子视图)。

我用它来防止主控制器变得混乱。也许这不是真正的 MVC 模式,但在过去 5 年左右的时间里它对我很有帮助。

在此处输入图像描述

于 2012-05-22T15:05:19.377 回答