angular.js - angular1.X上的问题
本文介绍了angular.js - angular1.X上的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
为什么这么写老是报$http没有注入,而换成factory就好用,求指点
解决方案
首先要明白,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阶段时,工厂对象都配置完成了,才能按照依赖注入的语法将相应的服务实例注入进来
这篇关于angular.js - angular1.X上的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文