我已经阅读了几篇关于使用angularjs实体(服务、工厂、控制器和指令)的正确方法的帖子。
我特别关注控制器和服务的比较。然而,没有一篇文章告诉我控制器可以做到服务不能做到的事情,反之亦然。
这些差异是否可以列出或者只是在angular的使用上具有规范性?
我已经阅读了几篇关于使用angularjs实体(服务、工厂、控制器和指令)的正确方法的帖子。
我特别关注控制器和服务的比较。然而,没有一篇文章告诉我控制器可以做到服务不能做到的事情,反之亦然。
这些差异是否可以列出或者只是在angular的使用上具有规范性?
控制器通常用于与视图绑定。控制器管理视图的生命周期,应被视为视图控制器。每个视图实例都会创建一个新的控制器,这意味着如果您从某个视图导航到其他视图,然后再返回 - 或者如果您有多个相同视图的实例,则每次都会创建一个新的控制器。
服务通常用作应用程序的业务逻辑。服务类似于单例,因为它们只需创建一次,并在整个应用程序的生命周期中保持其实例。它是放置许多视图或组件所需的逻辑函数的好地方,并且还具有全局缓存,需要在应用程序的多个区域中访问。
控制器 - 职责:初始化视图,调节视图/作用域与服务之间的交互。它依赖于视图和模型,但更关心视图并使其正常工作。
服务 - 职责:提供业务服务,不依赖于视图或控制器。其主要关注点是提供服务,无论消费者是谁(控制器、视图、其他服务)。
我不确定持久化是否影响了这些差异。