首页 > 解决方案 > 对具有多个模型的 JS 应用程序使用 MVC 模式

问题描述

在使用多个模型的情况下,我正在尝试理解 MVC 模式在 JS 应用程序中的用法。例如,我有一个包含用户信息、他的命令和命令执行者的页面。我需要显示一些用户信息并进行命令和执行者编辑。所以我有 3 个模型,每个模型都需要控制器和视图。除了命令和执行者在列表中。模型中连续使用的所有列表必须从服务器加载。我应该使用什么方法在一个页面中管理多个 MVC 实体?也许是另一种设计模式等。

更新
澄清
但是,如果我需要制作一个单独的页面,我只处理订单或只处理执行者。这些应该是单独的实体是合乎逻辑的,以便它们可以用于各种任务。我认为,在这种情况下,也许有必要从“小”模型中组装一个“大”模型来解决特定问题,或者为模型之间的交互制作某种接口。我在说什么?例如,当我从服务器加载订单时,我还加载了一些关于执行程序的信息,即在 SQL 数据库中,这是通过两个表的一些 JOIN 完成的。哪个模型请求加载?显然是命令。那么,如何初始化执行者模型数据呢?好的,我正在做一个大模型,其中包含我需要的关于我的应用程序中所有实体的所有数据。好的,页面(模态,无论如何)用于执行人的编辑。不需要订单数据或客户(用户)数据。为此,我使用相同的模型,其中一些与它们相关的数据和函数将不会被使用。有些东西不适合我:)

标签: javascriptmodel-view-controllerdesign-patterns

解决方案


只是一个更正,MVC 是一种架构模式,而不是一种设计模式。然而,两者相差一条细线,因此在讨论过程中很容易错误地互换两者。

无论如何,MVC 应该是构建代码的好方法:

- authentication [Feature1]
    - pages
       - signin_page.htm
       - authentication.css
       - signup_page.htm
    - models
       - user_info.js
       - signin_info.js
    - auth_controller.js
 - orders [Feature2]
    - pages
    - models
       - order_info.js
       - payment_info.js
    - order_controller.js
 - Feature3
 - Feature4
 - shared [all common things]
    - services
       - http_service.js
    - models
       - error_info.js

基本上,您可以为每个特性或功能创建一个文件夹,然后根据需要在其中创建文件夹,即页面/视图和模型,然后为每个特性创建一个或多个控制器,以及一个通用服务来执行应该接受参数的 http 调用和url 作为输入,应该处理所有的错误处理。


推荐阅读