MVVC模式中的模型指南(特别是使用knocket.js)
Guidelines for models in MVVC pattern (specifically using knockout.js)
这是一个一般性问题,但我希望得到一些反馈。我是MVVC范式的新手,我发现它非常适合我的SPA,它90%是以不同形式呈现数据(IE用户对数据的操作很少)。
但是,我对在模型和模型视图之间设置数据格式或"清理"的位置有点困惑。我的总体感觉是,我的模型视图应该只有与更新视图相关的敲除或jquery特定代码。但有些格式似乎有点过于视图特定,无法在模型中使用。例如,如果我只是更改字符串以使它们更"用户友好",你会把它放在模型或视图模型中吗?对于模型来说,似乎有太多以用户为中心/以页面为中心的知识,而对于视图模型来说,又有太多的领域知识。
我知道没有硬性规定,但我只是想知道在这种情况下最好的指导方针是什么。
视图模型可以被认为是视图的模型。换言之,它对它所支持的观点是非常具体的。虽然可以将多个视图绑定到同一视图模型,但在视图模型和它们各自的视图之间具有一对一的相关性要常见得多。
为了回答你的问题,在视图模型中进行高度专业化、以视图为中心的行为没有错。这包括格式化逻辑。例如,您的模型可能会将价格显示为数值"23.34"。如果您的视图将其显示为货币,则您的视图模型会调整此属性,以便将其格式化为"23.34英镑"。
最后,模式是模型视图视图模型(MVVM),而不是MVVC!
相关文章:
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- 从网站(特别是Trello.com)获取JSON文件
- 使javascript警报/确认对话框更加可见(特别是在Google Chrome浏览器中)
- 特别是将javascript添加到类中,而不是添加到另一个类中
- Piwik自定义插件开发/JQPlot(特别是:Piwik 1.7.1中的seriesPicker)
- 多文件上传,支持所有浏览器,特别是ie7,ie8和ie9
- 如何从浏览器中删除Skype呼叫工具?特别是Chrome
- 编译用于调试的私有api——特别是_enableRemoteInspector
- 如何模拟AngularJS中的构造函数(特别是Date()构造函数)
- 究竟如何getElementsByClassName工作在Chrome?,特别是w.r.t. NodeLists &;延
- 如何轻松运行本地内容(javascript, Flash),特别是在IE11中
- 如何抑制退格时,日期字段日历是活跃的extjs 4,特别是在IE中
- 在包含相对".js"后缀的npm包中使用aurelia-cli需要导入(特别是autobahn)
- Node.js有哪些调试选项?特别是在Visual Studio Code中
- HTML5视频显示时间在Javascript -特别是秒
- AJAX构建和部署环境,特别是javascript和css min,完整版本
- 如何从HTML表中提取数据,特别是<td id=“;单词“>,使用JavaScript
- 将String转换为方法参数,特别是在console.log中
- Vue.js:从DOM中拉入数据——特别是form action属性
- If/Else语句不能正常工作(特别是Else语句不能正常工作)