Angular的依赖注入(依赖反转)原理说明
2023-09-14 08:58:55 时间
依赖注入(依赖反转)意思是由函数决定要引入什么样的依赖:
let mod = angular.module('test',[]); mod.controller('test_c',function($scope,$interval){ //这里就引入两个依赖$scope和$interval }) //神奇的是我所引入的依赖不受顺序、个数影响 //下面运用这些依赖的时候仍然杠杠的 mod.controller('test_c2',function($interval,$http,$scope){ })
这里就不得不佩服Angular作者的想法了,正常来说在js里面,我们可怜的函数只能被动地接受参数,甚至不知道自己能得到多少参数,什么类型的参数,这也是js天然的“烂语法”导致,我们聪明的作者就用一种挺简单的方法实现了依赖反转,由我们的函数来决定要什么依赖。
核心原理就是利用function的toString方法:
(function myFunction($scope,$interval){}).toString();//"function myFunction($scope,$interval){}"
这里明显可以用各种正则来匹配到我们形式参数了,匹配完之后controller在调用我们传入的函数的时候就按部就班地按照匹配到的形参,按照类别顺序依次个传入,完事~~
相关文章
- [Angular] N things you might don't know about Angular Route
- [Angular] ngx-formly (AKA angular-formly for Angular latest version)
- [Angular 2] ROUTING IN ANGULAR 2 REVISITED
- [Angular] USING ZONES IN ANGULAR FOR BETTER PERFORMANCE
- [Angular 2] ROUTING IN ANGULAR 2 REVISITED
- [AngularJS] angular-md-table for Angular material design
- [Angular 2] Passing Observables into Components with Async Pipe
- [AngularJS] angular-formly: expressionProperties
- Angular 依赖注入机制实现原理的深入介绍
- Angular单元测试框架里API toHaveBeenCalledTimes的工作原理
- Angular Service依赖注入的一个具体例子
- Angular框架里两个模块的互相依赖
- Angular 依赖注入学习笔记之工厂函数的用法
- Angular 项目里 angular.json 文件内容的学习笔记
- Angular 依赖注入里factory函数的调用时机
- Angular路由错误消息 - router-outlet is not a known element
- Angular 依赖注入 UseClass 和 UseExisting 的区别 - 一个实际的测试例子
- Angular依赖注入的一个例子和注入原理单步调试
- Angular里遇到的一个依赖注入问题以及解决办法