开源一夏 | AngularJS 实战之依赖注入与应用实践
什么是依赖注入
依赖注入(DI)是一种软件设计模式。在此模式中,一个或多个依赖项(或服务)被注入(或通过引用传递)到独立对象(或客户端),然后成为客户端状态的一部分。这种模式分离了客户端依赖行为本身的创建,这使得程序设计松散耦合,并遵循依赖反转和单一责任的原则。与服务定位器模式直接相反,它允许客户机理解客户机如何使用系统查找依赖项。
Angularjs 提供了良好的依赖注入机制。以下五个核心组件用作依赖项注入:
List item
value
factory
service
provider
constant
定义一个模块
创建 value 对象 "defaultInput" 并传递数据
将 "defaultInput" 注入到控制器
factory
factory 是一个返回值的函数。它是在服务和控制器需要时创建的。通常我们使用 factory 函数来计算或返回值。创建 factory "MathService" 用于两数的乘积 provides a method multiply to return multiplication of two numbers
在 service 中注入 factory "MathService"
在 angularjs 中,通过提供者(配置阶段)创建服务、工厂等。提供程序提供了一个工厂方法 get(),用于返回 value/service/factory。
使用 provider 创建 service 定义一个方法用于计算两数乘积常量(Constant)用于在配置阶段传递值。请注意,此常量在配置阶段不可用。
html 元素是 AngularJS 应用: ng-app="myNoteApp" 的容器:
<div>
是 HTML 页面中控制器: ng-controller="myNoteCtrl" 的作用域:
ng-model 指令绑定了 <textarea> 到控制器变量 message:
两个 ng-click 事件调用了控制器函数 clear() 和 save():
ng-bind 指令绑定控制器函数 left() 到<span> ,用于显示剩余字符:
Number of characters left: <span ng-bind="left()"></span>
Angularjs 应用程序架构上面的示例是一个完整的 angularjs 单页 web 应用程序(SPA)。<html>
元素包含一个 angularjs 应用程序(ng app=)。元素定义了 angularjs 控制器(ng controller=)的范围。一个应用程序中可以有多个控制器。应用程序文件(my…App.JS)定义了应用程序模型代码。一个或多个控制器文件(my…Ctrl.JS)定义了控制器代码。
应用程序库文件只能在加载 angularjs 后执行:
版权声明: 本文为 InfoQ 作者【黎燃】的原创文章。
原文链接:【http://xie.infoq.cn/article/44b271ce419b4d03bbc5808f2】。文章转载请联系作者。
评论