首先要明白,provider和factory的区别是,前者是ng中依赖注入服务实例的提供者,是用来构造factory或者service,而后者则是属于provider的语法糖形式而已,本质还是provider。一般factory的声明形式为 module.factory(name, $getFunction(){...}) 等价于 module.provider(name, { $get: $getFunction(){...} }) 所以举一反三咯,如果在factory中声明依赖注入的$http写法是 module.factory(name, [$http, $getFunction($http){...}]) 那么provider就应该是 module.provider(name, { $get: [$http, $getFunction($http){...}] }) 如果硬要说明原理的话,应该是,provider是在ng初始化阶段,也就是module.config函数进行时运行的,这时候的服务工厂对象都处于配置状态,所以无法通过依赖注入来提供服务实例(因为服务都在初始化中),只有到module.run阶段时,工厂对象都配置完成了,才能按照依赖注入的语法将相应的服务实例注入进来
首先要明白,provider和factory的区别是,前者是ng中依赖注入服务实例的提供者,是用来构造factory或者service,而后者则是属于provider的语法糖形式而已,本质还是provider。
一般factory的声明形式为
等价于
所以举一反三咯,如果在factory中声明依赖注入的$http写法是
那么provider就应该是
如果硬要说明原理的话,应该是,provider是在ng初始化阶段,也就是module.config函数进行时运行的,这时候的服务工厂对象都处于配置状态,所以无法通过依赖注入来提供服务实例(因为服务都在初始化中),只有到module.run阶段时,工厂对象都配置完成了,才能按照依赖注入的语法将相应的服务实例注入进来