Javascript AngularJS真的是MVC吗?

Javascript AngularJS真的是MVC吗?,javascript,model-view-controller,angularjs,Javascript,Model View Controller,Angularjs,我正在浏览上的示例,特别是“添加一些控件”。我不太明白它是如何映射到MVC模式的 或多或少很清楚,模板(index.html)可以看作是视图,对象由todo.js中的TodoCtrl构造,作为控制器,但是模型在哪里呢?像ng model这样的属性映射到框架的一些内部部分,并且不直接公开我们可以称之为模型的对象 将AngularJS称为MVC框架是否正确?属性映射到控制器中定义的范围变量中。例如,如果您有一些代表您的业务逻辑的JS对象,您可以将它们放在范围变量中,然后属性可以映射到模型本身,而不是

我正在浏览上的示例,特别是“添加一些控件”。我不太明白它是如何映射到MVC模式的

或多或少很清楚,模板(index.html)可以看作是视图,对象由todo.js中的TodoCtrl构造,作为控制器,但是模型在哪里呢?像
ng model
这样的属性映射到框架的一些内部部分,并且不直接公开我们可以称之为模型的对象


将AngularJS称为MVC框架是否正确?

属性映射到控制器中定义的范围变量中。例如,如果您有一些代表您的业务逻辑的JS对象,您可以将它们放在范围变量中,然后属性可以映射到模型本身,而不是范围变量中的一些任意值。

我还没有读过Angular。但是,请记住,“真正的”MVC意味着模型包含业务逻辑,控制器负责向模型传递用户输入,视图从模型中获取自己的数据。许多所谓的MVC框架实际上并没有以正确的方式实现MVC:它们让控制器承担了太多的责任,就像让控制器也负责更新视图一样。这不是控制器的意图,在这种情况下,您将得到所谓的“fat控制器”。许多Web开发人员存在一种误解,认为视图只是一个“模板”。这是真是假,;它是一个模板,但它直接从模型中获取自己的数据,而不是通过控制器


但正如我一开始所说的:我还没有读过Angular,但你自己可能也读过,你应该能够通过查看框架中不同组件的功能来了解Angular是否真的是一个MVC框架

MVC背后的核心思想是在代码中明确区分 管理其数据(模型)、应用程序逻辑(控制器)并显示数据 给用户(视图)。 视图从模型中获取数据以显示给用户。当用户与 应用程序通过单击或键入,控制器通过更改模型中的数据进行响应。 最后,模型通知视图发生了更改,以便更新所需的内容 它显示。 在角度应用程序中,视图是文档对象模型(DOM),控制器
是JavaScript类,模型数据存储在对象属性中。

如果任何可以在对象中存储数据的东西都被视为模型,那么每个前端框架(视图)都可以被视为具有模型。它们都可以将数据存储在对象中并在视图中显示。我认为将angular称为mvc实际上是一种营销策略,试图让angular看起来更像是mvc

见:


在控制器中,是他们给出角度的示例作为模型的地方。如果它不能帮助存储持久性数据,那么它就不是一个很好的模型。

那么主页上的示例不是真正的MVC示例?我需要更深入地了解AngularJS中的MVC吗?@PaulLysak文档中还有更多的例子。要使它成为MVC,实际上不需要单独的“模型”,而且MVC的定义有点松散。在您所指的示例中,模型本质上就是放在
$scope
变量中的内容。这只是一个简单的模型,只用于单一控制器。谢谢,这澄清了很多!