UI状态应该存储在模型还是控制器中?

时间:2014-09-01 10:16:13

标签: javascript model-view-controller architecture

让我们来看一个简单的例子:

data --> projection --> view

我在这里所谓的投影可以是任何UI状态,导致过滤,排序,突出显示等......

在MVC范例中,数据存在于模型中,视图是视图,状态属于哪里?

我曾经在控制器中存储状态,但我听说它很糟糕,控制器应该保持“精益”,所有东西都应该塞进模型中。我可以看到使用无状态控制器进行测试的优势,但在模型中耦合数据及其投影似乎是反直觉的。

如果不同的观点需要不同的数据预测怎么办?它是如何分解的?

[编辑] 找到一些相关问题herehere,但他们没有直接回答问题。我知道将逻辑用于在模型中投影数据,但是没有说明应该维护这些投影的状态

1 个答案:

答案 0 :(得分:1)

"投影"你说的是两件事之一。它是实际模型数据,此时它属于模型层,或者它是MVVM中的ViewModel。因此,它存在于视图和控制器之间的自己的层中。

我真的需要看到更多细节,以了解哪些更能代表您想要实现的目标。例如,如果这是存储复选框的状态和文本字段,那么它是MVVM。如果您正在录制选择""的实体列表,那么它可能属于域层。

如果它是自己的型号,它可能与原始型号不在同一型号中。它可以完全分开,但仍取决于其他型号。

相关问题