Requirejs 和 AngularJS 中依赖注入

Posted 小马学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Requirejs 和 AngularJS 中依赖注入相关的知识,希望对你有一定的参考价值。

1. 目标:了解在  javascript 中是如何实现依赖注入。

2. 面向人群:web前端开发者

3. 内容:通过示例演示,讲解在 requirejs(以异步加载) 和  Angularjs(反射机制) 是如何实现模块依赖注入

4. 开发工具 visual studio code (推荐)

5. 使用 expect.js 进行测试


前言

这里概念比较抽象,难于理解,我尝试给大家解释清楚。

要开发一个可扩展的大型的 web 应用,模块化管理是必不可少的。在开始之前,让我们简单看一下计算机原理。计算机本身就是对大型结构的抽象。我们通过不断地包裹抽象并提供接口,这样一层一层地实现计算机复杂的结构。

我们每天使用开发语言也一样,语言本身提供许多内置的方法,

这些方法是对基本的运算符号进行抽象包裹,以便开发人员使用。我们也可以基于这些方法进行抽象,封装后提供接口来创建模块。以便其他开发人员使用这个模块。了解模块化作用和必要性,我们来回到今天正题依赖注入。


为了演示依赖注入,我们先创建两个模块,一个对 ajax 进行抽象封装,另一个是对路由进行管理的模块。

Requirejs 和 AngularJS 中依赖注入

通常会在应用中这样调用它。

 

Requirejs 和 AngularJS 中依赖注入

1. 先看一看 AMD 方式进行注入。

Requirejs 和 AngularJS 中依赖注入

然后实现 resolve 方法

Requirejs 和 AngularJS 中依赖注入


Requirejs 和 AngularJS 中依赖注入


另一种方式就是通过反射来实现依赖注入

Requirejs 和 AngularJS 中依赖注入

反射是程序的一种能力,可以在程序运行时检查和修改对象的结构和行为,听起来很抽象,琢磨琢磨吧




今天分享的有关依赖注入的内容,虽然听起来有些新奇,其实并不那么神秘

 可能在实际开发中你已经通过各种方式对他进行实现,只是没有觉察到







以上是关于Requirejs 和 AngularJS 中依赖注入的主要内容,如果未能解决你的问题,请参考以下文章

angularJS和requireJS和angularAMD

angularjs和requirejs整合

基于angularJS和requireJS的前端架构

AngularJs与RequireJs整合

AngularJS 和 RequireJS - 未捕获的错误:没有模块:MyApp

requirejs 和 angularjs 1.5 注入 ui.router 组件失败