在MVC中存储全局状态变量的位置以及如何传递它?

时间:2014-07-31 14:17:00

标签: javascript model-view-controller

请帮助我理解MVC架构的这个方面。

让我们说我的应用可以处于两个全局状态,查看模式编辑模式

1 / 模式需要保存到后端,因此当应用程序再次加载时,它将处于相同的模式。

2 / 可以在主菜单中更改模式(这是我的视图代码的一部分)。

3 /其他视觉元素和模型功能取决于模式状态。在视图模式下,某些内容将不可见,并且保存也将以不同方式工作。

4 /我的应用程序可以根据需要加载外部模块,这些模块在加载时需要知道模式状态以及它的进一步变化。

由于模块的松散耦合,我认为最好的做法是在模式更改上发送事件。我的问题是:我从哪里发货?变量实际定义在哪里?在模特?在视野中?视图和模型代码如何访问此变量?它是如何在模型和视图之间传递的?在这种情况下控制器的作用是什么?

注意:它并不重要,但我的代码是用JavaScript编写的,我还没有解决任何框架问题。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您使用的是哪个平台,但我认为这些建议可能主要与平台无关。

首先,这听起来并不像真正的应用程序全局状态属性,而是用户或会话属性。

如果您希望自己的应用保持"纯粹"无状态,此编辑模式数据应该是您发送到前端和从前端接收的模型/视图模型的一部分。然后,您的控制器可以读取模式更改并做出反应,并在发送到前端之前根​​据需要修改该值。前端JS也可以根据需要读取和更改值。

此外,标准会议也应该也可以使用,但是当然可以打破无状态"你的应用程序。