前言
依赖注入(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