AngularJS 1.0 源码学习笔记(二)- 依赖注入和module加载

最近创业的公司要上线新的产品功能,一直没能有机会静下来好好再继续Angularjs的源码阅读计划

这两天终于是找了点机会拜读完了Angularjs中最根基的几个部分之一 – 也就是Angularjs的依赖注入功能。

依赖注入(Dependency Injection)是一种常用的控制反转的设计原则。基本思想就是当我的代码需要某一个功能对象时,一个全局的调控对象会把相应的对象调用给我。

而我不需要去关心这个东西是什么时候创建的,生命周期又是如何被控制的,这都不关我的事情。打个比方,当我想看电视时,我只要优雅的葛优瘫在沙发上,说着,给我把遥控器拿来,那么就会有这么一个勤勤恳恳的人替我装好电池,调好频段,然后把遥控器交到我的手里。

而这个任劳任怨的家伙在Angular里面就是一个叫做$inject的Service.

不过在讲$inject之前,我们首先需要了解一下Angularjs的大家都很熟悉的angular.module系列函数.

angular.module的运作过程

angular.module就像它本身的名字一样,它是用来管理angular中的各个模块的函数。它具备了两个功能

……

AngularJS 1.0 源码学习笔记(一)- src目录结构

前言:

偶然发现在全职做程序员的这一年里,虽然接触的第三方代码很多,也hack过很多已有的库,但是却还没有好好完整的读过一份现在流行框架的源码,甚至对于使用得很熟练的angularJs,对于它的实现方式都没有做到完全透彻的理解,感觉真是相当惭愧。

为此,我在最近开始了两项纯粹的学习计划:
1. 阅读Angular1.0的源代码并且完整理解它的设计模式和理念
2. 学习Angular2.0的使用方法

由于这份笔记是边学边写,可能我会在初次发布时对于全局的代码有理解偏差或者错误的地方。如果存在这样的情况,我会尽量在之后回来进行勘误和修改。

为了能够学习AngularJS,首先当然应该就是获得它的代码,最直接的就是直接使用它的完整comment版本(目前稳定版本为1.5.7 -by 2016-07-20):https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.js

对于中文语言的学习者,其实还有各种大牛们对于comment的中文翻译版本(大家可以自行google)

但是我选择学习angularjs github repository中的src部分,

……