AngularJS 浅谈DI-依赖注入 $injector的神奇之处

本文探讨AngularJS中的依赖注入(DI)机制,重点关注$injector的作用。介绍了Angular如何启动,包括通过ng-app和手动bootstrap方法。接着详细阐述了三种依赖注入方式:推断注入法、声明式注入法和内联式注入法,并分析了各自的优缺点。最后,深入讨论了$injector服务,包括其annotate方法和get方法,强调了$injector在DI中的核心地位。
摘要由CSDN通过智能技术生成

前言

依赖注入(DI)和控制反转(IOC)都是java Spring里经典的面向对象编程的法则来削减计算机程序的耦合问题的解决方案。
在Angular中,引入了DI的思想,DI是一种工具思想,而不是一种目的,它的目的是为了降低程序代码之间的耦合。

Angular的启动方式

先看一下angular究竟是怎么启动的。
在等待DOM解析完毕后,触发DOMContentLoaded事件时,angular会尝试找到ng-app指令,从而来确定程序的边界,而angular总是以模块开始启动的。

一个简单的angular程序,大概类似于这样

angular.module("myApp",[])

            .controller('myController', ['$scope', function($scope){
                console.log("hello world");
            }]);

上述代码比较简单我这里就不再赘述了。

然而,有的时候我们并不想显示的通过ng-app来启动angular,因此我们可以手动的调用angular.bootstrap方法来进行一个启动的操作,到这里我们首先必须明白,angular是一个单例对象,被绑定在window这个全局对象上。

在启动angular程序之前,我们必须明白的是我们必须等待浏览器解析DOM树完毕后我们才能启动angular来遍历DOM树,由于angular内部封装有轻量级的jquery,因此我们可以这样写

let app = angular.module("myApp",[]);
angular.element
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值