美文网首页
AngularJS学习之依赖注入

AngularJS学习之依赖注入

作者: McRay | 来源:发表于2017-04-21 20:53 被阅读0次

    什么是依赖注入

    AngularJS采用的是模块化的方式来组织代码的,它会将一些通用逻辑封装成一个对象或者函数,实现最大程度的复用,这导致了使用者和被使用者之间存在了一些依赖关系。
    所以所谓的依赖注入是指,在运行的过程中自动查找需要的依赖关系,然后将依赖关系传递给使用者的一种机制。
    例如,造一个控制器,需要一个模块2(模型),这时开发需要向AngularJS申请一个模块2,AngularJS会根据使用者申请的模块,去寻找对应的模块,然后将找到的模块传递给使用者,这个过程就叫做依赖注入。
    常见的AngularJS内置服务有$http,$location,$timeout,$interval,$rootScope等。

    推断式注入

    var app = angular.module('app',[]);
    app.controller('demoController',function('$scope','$http'){
    //逻辑代码
    });
    

    上面这种,直接将函数参数当成是依赖注入的方式叫做推断式注入,这种方式看似代码量很少,但是存在一个问题,当代码进行压缩的时候,函数的参数会被压缩成其他名字的变量,这个时候,angularjs就无法寻找到对应的依赖关系了,所以一般使用的是行内注入的方式。

    行内注入

    var app = angular.module('app',[]);
    app.controller('demoController',['$scope','$htto','function('$scope','$http'){
    //逻辑代码
    });
    

    将依赖关系写在数组中,除了最后一个参数是执行业务逻辑以外,前面的参数就是对应的依赖注入,这种方式就解决了推断式注入的问题,在代码压缩完后,仍然能查找到对应的依赖。

    相关文章

      网友评论

          本文标题:AngularJS学习之依赖注入

          本文链接:https://www.haomeiwen.com/subject/fgkjzttx.html