我正在浏览the AngularJS home page上的示例--特别是“添加一些控件”。我不太明白它是如何映射到MVC模式的。
很明显,模板(index.html)可以被认为是视图,由todo.js中的TodoCtrl构造的对象作为控制器,但是模型在哪里呢?像ng-model这样的属性映射到框架的一些内部部分,并且不会直接公开我们可以称之为模型的对象。
将AngularJS称为MVC框架正确吗?
发布于 2012-11-06 18:51:53
这些属性映射到控制器中定义的作用域变量。例如,如果您有一些表示业务逻辑的JS对象,则可以将这些对象放在范围变量中,然后这些属性可以映射到模型本身,而不是范围变量中的一些任意值。
发布于 2014-10-30 13:33:21
MVC背后的核心思想是,在管理其数据(模型)、应用程序逻辑(控制器)和将数据呈现给用户(视图)之间,您在代码中有明确的分离。视图从模型中获取数据以显示给用户。当用户通过单击或键入与应用程序交互时,控制器通过更改模型中的数据进行响应。最后,模型通知视图发生了更改,以便它可以更新所显示的内容。在Angular applications中,视图是文档对象模型(DOM),控制器是JavaScript类,模型数据存储在对象属性中。
发布于 2013-12-07 10:12:54
我还没有读过有关Angular的文章。但是,请记住,“真正的”MVC意味着模型包含业务逻辑,控制器负责将用户输入传递给模型,而视图从模型中获取自己的数据。许多所谓的MVC框架实际上并没有以正确的方式实现MVC :它们用过多的责任重载了控制器,就像让控制器负责更新视图一样。这并不是控制器要做的事情,在这种情况下,您会得到所谓的"fat控制器“。在许多View开发人员中有一种误解,认为视图只是一个“模板”。这既是真也是假;它是一个模板,但它直接从模型中获取自己的数据--而不是通过控制器。
但正如我一开始说的:我还没有读过Angular,但你可能已经读过了,你应该能够通过查看框架中的不同组件来发现Angular是否是一个真正的MVC框架。
https://stackoverflow.com/questions/13247738
复制相似问题