写在前面
Value,Factory,Service和Constant,这4种都只语法糖。ng启动阶段是 config—>run—>compile/link 。
供应商($provide)
$provide中的provider()方法来定义一个供应商,供应商是用来提供服务的,被注入来注入去的东西就是供应商们提供的服务了。
AngularJS用$provide去定义一个供应商,这个$provide有5个用来创建供应商的方法:
- constant
- value
- service
- factory
- provider
constant,value,service,factory 都是 provider 的语法糖,所有的供应商都只被实例化一次,也就说他们都是单例的。
app.config(function ($provide) {$provide.constant('movieTitle', 'The Matrix');});
服务(service)
每次当你切换或刷新页面的时候,Angular 会清空当前的 controller。与此同时,service 可以用来永久保存应用的数据,并且这些数据可以在不同的 controller 之间使用。
app.constantapp.valueapp.serviceapp.factoryapp.provider
上面是下面的语法糖
$provider.constant$provider.value$provider.service$provider.factory
上面是下面的语法糖
$provider.provider
app.provider 要提供一个 $get 函数,唯一的可以在你的控制器中访问的属性和方法是通过$get()函数返回内容。
factory和service
用 Factory 就是创建一个对象,为它添加属性,然后把这个对象返回出来,Service 是用”new”关键字实例化的。
