zoukankan      html  css  js  c++  java
  • 介绍Angular的注入服务

      其实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(){
                    
                })
  • 相关阅读:
    设计模式浅谈
    链表的遍历(1)
    链表的删除(3)
    链表结构的反转(5)
    二叉树数组表示法
    循环链表的插入和删除
    链表的链接(2)
    双向链表内结点的删除(4)
    hdu1042
    数组和链表的区别
  • 原文地址:https://www.cnblogs.com/HeJason/p/5502759.html
Copyright © 2011-2022 走看看