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(){
                    
                })
  • 相关阅读:
    python异常
    linux下进行base64编码解码
    mybatis参数映射
    Mybatis--映射器注解
    Mybatis--映射器注解
    Mybatis--Statement Builders
    Mybatis--Statement Builders
    在MySql中如何定义像Java中类型的Boolean类型
    在MySql中如何定义像Java中类型的Boolean类型
    Navicat导入导出数据表
  • 原文地址:https://www.cnblogs.com/HeJason/p/5502759.html
Copyright © 2011-2022 走看看