您的位置:首页 > Web前端 > AngularJS

介绍Angular的注入服务

2016-05-17 18:44 417 查看
  其实angular的注入服务是挺复杂的,目前看源码也只看懂了一半,为了不误导大家,我也不讲敢讲太复杂,怕自己都理解错了。

  首先我们要知道angular的三种注入方式:

    第一种:inference

var myModule = function($scope){

}


    第二种:annotation

var myModule = function($location){
console.log('Module:代码注入$location成功');
console.log($location);
}
myModule.$inject = ['$location'];
$injector.invoke(myModule);


    第三种:inline

var MyTest = ['$location',function($location){
}]


var MyTest = ['$location',function($location){
console.log('Test:代码注入$location成功');
console.log($location);
}]
var myModule = function($location){
console.log('Module:代码注入$location成功');
console.log($location);
}
angular.module('MyApp',[])
.run(function($injector){
console.log($injector);

//功能和注入时声明一样,但是在注入时声明有时会出现循环依赖的问题,这个时候基本可以在函数内部注入解决。
console.log($injector.get('$http'));

//用来获取对象的依赖注入
console.log($injector.annotate(MyTest));

//注入函数,当你定义了某个函数,超出ng的规范的时候,你可以选择用这种方法注入函数,来达到访问ng内置服务的目的
$injector.invoke(MyTest);

//当前服务是否存在
console.log($injector.has('myFact'));

// myModule.$inject = ['$location']
// $injector.invoke(myModule);
})
.factory('myFact',function(){
return {}
})
.controller('MyCtrl',function(){

})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: