Angular控制器 - 为什么他们称之为控制器?

13 浏览
0 Comments

Angular控制器 - 为什么他们称之为控制器?

通常情况下,控制器不应该做太多的事情。它只应该包含单个视图所需的业务逻辑。\n我不明白为什么是控制器。这应该是模型。请解释一下。\n编辑:\n这是官方开发者指南中的示例:\nangular.module(\'invoice1\', [])\n.controller(\'InvoiceController\', function() {\n this.qty = 1;\n this.cost = 2;\n this.inCurr = \'EUR\';\n this.currencies = [\'USD\', \'EUR\', \'CNY\'];\n});\n 发票:\n 数量:\n 成本:\n \n我不理解的是这里的控制器等同于模型。我错了吗?

0
0 Comments

为什么Angular将其命名为控制器?

Angular不严格遵循MVC模式。它更接近MVVM(Model-View-ViewModel)模式,或者说更接近“Model-View-Whatever”模式,尽管这并没有太大帮助。

简而言之:

- Angular的控制器和作用域属于ViewModel层。

- ViewModel可以被视为一个特殊的控制器,作为数据转换器。(参考:http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers)

控制器的责任是仅代表视图所需的数据,并将它们与视图关联起来。这些数据通常是从实际的模型层复制或引用而来。

模型层(在MVVM中)对视图一无所知。这就是Angular服务所属的位置,也是您希望放置大部分业务逻辑的地方,以保持Angular控制器(即ViewModel层)的简洁。

然而,常见的模式违规之一是将服务器请求放入控制器中,这在各种教程中时常发生。想象一下,如果您要更改后端,那么您将需要重写每个控制器!而如果将这些信息放入模型(Angular服务)中,那么在更改后端时,您只需要重写与之相关的服务。这样更加清晰和易于维护。

0
0 Comments

Angular的控制器起到将数据连接到视图的作用。在Angular中,控制器的职责是将各部分连接在一起,而模型只包含数据。在ng-model指令中使用的变量实际上是与视图绑定的变量。

在上面的示例中,控制器起到了控制器的作用,phones和orderProp是模型,$scope是作用域。在这个示例中,模型被放置在控制器的作用域内。

MVC实际上只是一种模式,你可以以不同的方式使用它,没有编译错误指出错误的模式使用方式。但是使用它的唯一原因是使事情更直观。因此,较少复杂的方式更好!

0
0 Comments

Angular控制器(controller)为什么被命名为控制器?

Angular控制器(controller)被命名为控制器,因为它仅负责处理和操作数据,而不涉及业务逻辑。在MVC(模型-视图-控制器)架构中,控制器的作用是处理和操作模型的数据。

模型(Model)是数据的表示形式,它仅包含数据本身,并不包含业务逻辑。控制器(Controller)负责处理模型数据,并对其进行操作。

当你使用贫血领域模型(Anemic domain model)时,模型仅仅是数据的容器,不包含任何业务逻辑。在这种情况下,控制器就需要负责处理和操作这些数据。

解决方法:将业务逻辑移到服务(Service)中。服务是一个独立的模块,用于处理和操作数据的具体业务逻辑。通过将业务逻辑从控制器中分离出来,可以使控制器更加简洁和可维护。

Angular控制器被命名为控制器,是因为它仅负责处理和操作数据,不涉及业务逻辑。当模型仅仅是数据的容器时,控制器需要负责处理和操作这些数据。为了使控制器更加简洁和可维护,可以将业务逻辑移到服务中。

0