【发布时间】:2016-03-07 22:21:13
【问题描述】:
我一直在互联网上四处寻找,以更好地了解MVVM。
在Wikipedia 上,它指出MVVM 模式的组成部分是:
- 型号
- 查看
- 查看模型
- 活页夹
这是我第一次遇到binder 定义以及作为首字母缩略词一部分的model、view、view-model。
MVVM 的维基百科定义
的“活页夹”声明如下:
声明性数据和命令绑定隐含在 MVVM 模式中。在
Microsoft解决方案堆栈中,binder是一个名为XAML 的markup language。 binder 使开发人员不必编写样板逻辑来同步view model和view。 当在Microsoft堆栈之外实现时,声明性databinding技术的存在是该模式的关键促成因素。
问题:是否每个MVVM 模式总是包含binder? binder 究竟是做什么用的?
是您实际编码的东西,还是framework 只是进行了一些自动化操作?
我几乎每天都在工作和使用AngularJS,有些人同意它的模式是MVVM,而不是MVC/MVP。我知道View Model 就是AngularJS 所称的"Controller",作为对“经典”MVC 的回忆。
但是AngularJS 也使用binder 吗?我在AngularJS 中编码时仍然没有看到类似的东西,也许binder 只是用于桌面编程框架而不是浏览器?
在维基百科上,它给出了WPF 的XAMl 作为C# 的binder 示例,那么AngularJS 的反例是什么? AngularJS 的templates 和/或他们的syntax 也是view 和/或binder?
您能否对维基百科的文章提供更好的解释,也许可以举几个例子(AngularJS 和/或WPF)?
编辑:我在SO 上查看了更多内容,发现these slides 的点赞是MVB 而不是MVVM,所以:这是binder 我们'正在谈论一个可选项,它是否同时出现在MVVM 和MVB 中?
binder 是否只是指data-binding 在View 和View-Model 之间进行?您将如何在图表上表示 binder?是不是和this one上的“数据绑定”一样?
谢谢。
【问题讨论】:
-
维基文章写得很糟糕,如果他们将活页夹/绑定和 xaml 混为一谈。
-
我同意。这就是为什么我很困惑并在这里问的原因
标签: javascript angularjs design-patterns model-view-controller mvvm