1.angular中使用$provide来注册服务,然后使用$inject来注入注册的服务。
app.config(function($provide){
$provide.provider("myProvide", function(){
this.$get = function(){
return function(name){
alert("name is "+name)
}
}
})
})<pre name="code" class="html">app.config(function($provide){
$provide.factory("myProvide", function(){
return function(name){
alert("name is "+name)
}
})
})
app.config(function($provide){
$provide.vaue("myProvide", function(name){
alert("name is "+name)
})
})
这三个方法都是注册服务的方法,由于这个三个方法比较常用, 所有angular将这个三个方法暴露给了angular实例。
app.config(function($inject){
var inject1 = $inject.get("myProvide")
var inject2 = $inject.get("myProvide")
console.info(inject1===inject2)//true<span style="white-space:pre"> </span>
})
$inject可以动态的实例化注册的服务,而且两个名称相同的服务不会被重复实例化。