MVVC模式中的模型指南(特别是使用knocket.js)

Guidelines for models in MVVC pattern (specifically using knockout.js)

本文关键字:特别是 knocket js 模式 模型 MVVC      更新时间:2023-09-26

这是一个一般性问题,但我希望得到一些反馈。我是MVVC范式的新手,我发现它非常适合我的SPA,它90%是以不同形式呈现数据(IE用户对数据的操作很少)。

但是,我对在模型和模型视图之间设置数据格式或"清理"的位置有点困惑。我的总体感觉是,我的模型视图应该只有与更新视图相关的敲除或jquery特定代码。但有些格式似乎有点过于视图特定,无法在模型中使用。例如,如果我只是更改字符串以使它们更"用户友好",你会把它放在模型或视图模型中吗?对于模型来说,似乎有太多以用户为中心/以页面为中心的知识,而对于视图模型来说,又有太多的领域知识。

我知道没有硬性规定,但我只是想知道在这种情况下最好的指导方针是什么。

视图模型可以被认为是视图的模型。换言之,它对它所支持的观点是非常具体的。虽然可以将多个视图绑定到同一视图模型,但在视图模型和它们各自的视图之间具有一对一的相关性要常见得多。

为了回答你的问题,在视图模型中进行高度专业化、以视图为中心的行为没有错。这包括格式化逻辑。例如,您的模型可能会将价格显示为数值"23.34"。如果您的视图将其显示为货币,则您的视图模型会调整此属性,以便将其格式化为"23.34英镑"。

最后,模式是模型视图视图模型(MVVM),而不是MVVC!