简单来说, provider 是被“注入控制器”使用的一个对象,注入机制通过调用一个 provider$get() 方法,把得到的东西作为参数进行相关调用(比如把得到的服务作为一个 Controller 的参数)。



    在这里“服务”的概念就比较不明确,对使用而言,服务仅指 $get() 方法返回的东西,但是在整体机制上,服务又要指提供了 $get() 方法的整个对象。



    第一个是 factory 方法,由 $provide 提供, modulefactory 是一个引用,作用一样。这个方法直接把一个函数当成是一个对象的 $get() 方法,这样你就不用显式地定义一个 provider 了:


    module 中使用:


    这里插一句,js 中 new 的作用,以 new a() 为例,过程相当于:







    service 方法的使用就很简单了: