为什么AngularJS被认为是MV*?

21 浏览
0 Comments

为什么AngularJS被认为是MV*?

我在后端使用MVC(Rails)进行开发,并且当前正在前端使用MVC(MV*)(Angular)。我知道Angular被视为MV*模式,但为什么会被认为是这样呢?

使用Angular,我理解了关注点的分离,通过视图(模板)、控制器和服务来提供数据。在这种情况下,通过ng-model来实现前端临时存储的模型(数据存储)是合理的,但实际的持久性(当向API发出POST或PUT请求时)似乎是个未知数。因为数据的持久性可以以不同的方式处理(数据库、Firebase等)。

在我理解中,基于Angular,*VC更加合适,因为Angular的控制器比模型更加明确定义。

我可能对MV*模式的核心有所遗漏或困惑,非常感谢任何澄清。

0
0 Comments

AngularJS被认为是MV*框架,这是因为它支持多种方式来选择*(表示模式的替代符号)。以下是在AngularJS中选择*的几种方式:

1. 控制器(Controller):使用ngModelController和$controller。

- 使用ngModelController的示例:ngModelController

- 使用$controller的示例:$controller

2. 视图模型(View Model):使用依赖表达式(dependent expressions)和指令属性(directive attributes)。

- 使用依赖表达式的示例:dependent expressions

- 使用指令属性的示例:directive attributes

3. 展示者(Presenter):使用WebGL指令(WebGL Directive)。

- WebGL指令的示例:WebGL Directive

4. 展示-抽象-控制器(Presentation-Abstraction-Controller):使用每个iframe一个模块(module per iframe)的方式。

- 每个iframe一个模块的示例:module per iframe

总之,AngularJS被认为是MV*框架的原因是它支持多种选择*的方式,包括控制器、视图模型、展示者和展示-抽象-控制器。这种灵活性使得在不破坏应用程序的情况下构建有趣的用户界面和业务逻辑成为可能。

参考资料:

- Keynote for BackboneConf with Jeremy Ashkenas

0