首页 > 其他 > 详细

介绍Angular的注入服务

时间:2016-05-17 19:19:18      阅读:158      评论:0      收藏:0      [点我收藏+]

  其实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(){
                
            })

 

介绍Angular的注入服务

原文:http://www.cnblogs.com/HeJason/p/5502759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!