angular的依赖注入特性确实很强大,其核心就是$injector,他注入的所有服务,底层都是通过provider来提供的。而所谓的Service、Factory、Value、Constant只是provider封装出来的API方法而已,这些方法又大都暴露给angular.module,所以才会出现我们常见的module.service等方法。
$provide常见的API有:
|
|
下面举例来说明一下
1. Value
|
|
2. Factory
|
|
3. Service
angular中的service有两个特性:1)延迟实例化 2)单例。另外Service与Factory注入的方式不一样,Service注入时需要创建对象实例。而Factory直接注入的就是一个对象实例。
|
|
另外angular中的$http,$log,$filter等服务都提供了对应的provider,在注入这些服务之前,可以通过config来修改他们的配置。例如给$httpProvider.interceptors添加拦截器。