【发布时间】:2014-11-27 17:06:29
【问题描述】:
我曾在后端 (Rails) 上使用 MVC,目前正在前端 (Angular) 上使用 MVC(MV*)。我已经看到 Angular 被认为是一种 MV* 模式,但为什么它被认为是这样呢?
使用 Angular,我理解关注点的分离,使用视图(模板)、控制器,并使用服务来提供数据。在这种情况下,通过 ng-model 的模型(数据存储)对于前端临时存储是有意义的,但实际的持久性(当对 API 进行 POST 或 PUT 时)似乎是通配符。由于数据可以持久化的方式,可以以不同方式处理(数据库、firebase 等)。
根据我的理解,在我看来 *VC 更合适,因为 Angular 中的控制器比模型定义得更好。
MV* 模式一定有一些我遗漏或困惑的核心内容,非常感谢任何澄清。
【问题讨论】:
-
模型可以使用localStorage or sessionStorage存储在本地,也可以通过AJAX存储在服务器端。使用哪一个取决于开发人员。
-
持久性与 MVC 完全无关。 AngularJS 中显然有一个模型,它与视图分离。将此与基于 jQuery 的应用程序进行比较,例如,模型是 DOM 本身,它也是视图。
-
@JBNizet 好的持久性与 MVC 无关,现在你这么说是有道理的。但是我仍然很好奇为什么在明显有控制器的情况下使用 MV*。
-
AFAIK,AngularJS 将自己定义为一个 MVC 框架。例如,请参阅docs.angularjs.org/api/ng/directive/ngController。
标签: angularjs architecture model-view rationale mvw