AngularJS:控制器与服务

use*_*686 30 service controller angularjs

我已经阅读了几篇关于正确使用angularjs实体的帖子:服务,工厂,控制器和指令.

我特别关注的是控制器和服务的比较.虽然没有帖子告诉我控制器能做什么服务不能做什么,反之亦然.

这可以列出,还是只是角度使用规范的问题?

Gil*_*yof 71

控制器通常用于绑定视图.控制器管理视图的生命周期,应该被视为视图控制器.将为视图的每个实例创建一个新控制器,这意味着如果您离开某个视图,然后再返回 - 或者如果您有多个特定视图的实例,则每次都会创建一个新控制器.

服务通常用作应用程序的业务逻辑.服务类似于单例,因为它们只创建一次,并且实例在应用程序的整个生命周期中都得到维护.它是放置许多视图或组件所需的逻辑功能的好地方,并且还包含需要在应用程序的多个区域中访问的全局缓存.

  • 所以关键字是**持久性**...谢谢. (6认同)

pix*_*its 15

controllers - 职责:初始化视图,调解视图/范围和服务之间的交互.它依赖于视图和模型,但更关注视图并使其工作.

services - 职责:提供依赖于视图或控制器的业务服务.它的主要关注点是提供服务,无论消费者(控制器/视图/其他服务)如何.

我不相信持久性是否会影响差异.


Gra*_*ful 10

根据AngularJS文档,https: //docs.angularjs.org/guide/concepts

控制器与视图相关的业务逻辑有关.另一方面,服务与独立于视图的可重用业务逻辑有关.