AngularJS学习之依赖注入

什么是依赖注入

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'){
//逻辑代码
});

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一个对象通常有三种方式可以获得对其依赖的控制权: 在内部创建依赖 通过全局变量进行引用 在需要的地方通过参数进行传...
    oWSQo阅读 4,440评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,477评论 19 139
  • 1. 介绍 AngularJS是一款由Google公司开发维护的前端MVC框架,其克服了HTML在构建应用上的诸多...
    崔皓翔阅读 4,284评论 0 5
  • 1.背景介绍 今天给大家讲的是angular的依赖注入,首先,我们要介绍一下什么是依赖注入 依赖注入,我们打个比喻...
    过去的声音阅读 1,683评论 0 0
  • 每个人都是孤独的,但总有一些东西可以让我们忘记孤独,譬如爱情。在这个有点荒凉的世界,必须庆幸有人能牵起你的...
    Crazy麻麻阅读 3,826评论 44 25