angular的依赖注入笔记

时间:2022-02-08 19:40:49

一、依赖注入:

依赖注入是一种设计模式,可以自动事先查找依赖关系,在目标需要的时候立即注入进去。AngularJS使用$injetor(注入器服务)来管理依赖关系的查询和实例化。事实上,$injetor负责

实例化AngularJS中所有的组件,包括应用的模块、指令和控制器等。

二、依赖注入的方式:

  推断式注入声明:如:app.controller('myController',function($http,$location){});

  显式注入声明:如:

var fn = function($http,$location) {};

fn.$inject = ['$http','$location'];//$inject 显式声明注入

app.controller('myController',fn);

  行内注入声明:如:

app.controller('myController',['$http','$location',function($http,$location){}]);

  三者优缺点主要是在js代码合并压缩后 第一种方式会使得angular无法推断依赖关系而应用无法正常使用,

  后两种都可以避免上述情况发生,个人推荐使用第三种,也应该作为angular应用代码的规范,依赖关系清晰明了

  不过行内注入原理和显式注入原理完全一样,只是显式注入方式的一种语法糖而已。