- 浏览: 26563 次
最新评论
本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:AngularJs 基础教程 —— 依赖注入
AngularJS 依赖注入
什么是依赖注入
wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。
该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖
一句话 --- 没事你不要来找我,有事我会去找你。
AngularJS 提供很好的依赖注入机制。以下5个核心组件用来作为依赖注入:
value
factory
service
provider
constant
value
Value 是一个简单的 javascript 对象,用于向控制器传递值(配置阶段):
// 定义一个模块
var mainApp = angular.module("mainApp", );
// 创建 value 对象 "defaultInput" 并传递数据
mainApp.value("defaultInput", 5);
...
// 将 "defaultInput" 注入到控制器
mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
$scope.number = defaultInput;
$scope.result = CalcService.square($scope.number);
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});
factory
factory 是一个函数用于返回值。在 service 和 controller 需要时创建。
通常我们使用 factory 函数来计算或返回值。
// 定义一个模块
var mainApp = angular.module("mainApp", );
// 创建 factory "MathService" 用于两数的乘积 provides a method multiply to return multiplication of two numbers
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b
}
return factory;
});
// 在 service 中注入 factory "MathService"
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
...
provider
AngularJS 中通过 provider 创建一个 service、factory等(配置阶段)。
Provider 中提供了一个 factory 方法 get(),它用于返回 value/service/factory。
// 定义一个模块
var mainApp = angular.module("mainApp", );
...
// 使用 provider 创建 service 定义一个方法用于计算两数乘积
mainApp.config(function($provide) {
$provide.provider('MathService', function() {
this.$get = function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b;
}
return factory;
};
});
});
AngularJS 依赖注入
什么是依赖注入
wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。
该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖
一句话 --- 没事你不要来找我,有事我会去找你。
AngularJS 提供很好的依赖注入机制。以下5个核心组件用来作为依赖注入:
value
factory
service
provider
constant
value
Value 是一个简单的 javascript 对象,用于向控制器传递值(配置阶段):
// 定义一个模块
var mainApp = angular.module("mainApp", );
// 创建 value 对象 "defaultInput" 并传递数据
mainApp.value("defaultInput", 5);
...
// 将 "defaultInput" 注入到控制器
mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
$scope.number = defaultInput;
$scope.result = CalcService.square($scope.number);
$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});
factory
factory 是一个函数用于返回值。在 service 和 controller 需要时创建。
通常我们使用 factory 函数来计算或返回值。
// 定义一个模块
var mainApp = angular.module("mainApp", );
// 创建 factory "MathService" 用于两数的乘积 provides a method multiply to return multiplication of two numbers
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b
}
return factory;
});
// 在 service 中注入 factory "MathService"
mainApp.service('CalcService', function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
...
provider
AngularJS 中通过 provider 创建一个 service、factory等(配置阶段)。
Provider 中提供了一个 factory 方法 get(),它用于返回 value/service/factory。
// 定义一个模块
var mainApp = angular.module("mainApp", );
...
// 使用 provider 创建 service 定义一个方法用于计算两数乘积
mainApp.config(function($provide) {
$provide.provider('MathService', function() {
this.$get = function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b;
}
return factory;
};
});
});
发表评论
-
JavaScript强化教程 —— 对象创建模式
2016-10-09 17:12 715本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
AngularJs 基础教程 —— Select(选择框)
2016-09-23 17:14 829本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
AngularJs 基础教程 —— 控制器
2016-09-21 17:22 600本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
AngularJs 基础教程 —— 简介(10)
2016-09-14 17:41 535本文为 H5EDU 机构官方 HT ... -
AngularJs 基础教程 —— 与php服务器
2016-09-12 17:49 1292本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程 —— Cocos2d-JS自动JSB绑定规则修改
2016-09-09 18:08 1192本文为 H5EDU 机构官方 HT ... -
JavaScript强化教程 —— 资源打包工具的使用及资源的异步加载处理
2016-09-08 17:45 777本文为 HTML5培训 机构官方 HTML5培训 教程,主要介 ... -
JavaScript强化教程 —— Cocos2d-JS极速调试技巧
2016-09-05 16:18 877本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程 —— Cocos2d-JS游戏快速接入微信JS-SDK
2016-09-02 16:07 1046本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程—— 内置粒子系统
2016-08-29 16:00 772本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程——JavaScript Math(算数) 对象
2016-08-26 16:33 563本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程 —— Cocos2d-JS的屏幕适配方案
2016-08-25 16:25 1214本文为 H5EDU 机构官方 HT ... -
JavaScript强化教程 -- cocosjs场景切换
2016-08-24 16:11 1383本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
CSS基础教程 -- 媒体查询屏幕适配
2016-08-22 15:15 1105本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JQuery强化教程 —— jQuery Easing
2016-08-18 14:54 815本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
fullPage教程 -- 整屏滚动效果插件 fullpage详解
2016-08-17 15:21 836本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程——获取内容和属性
2016-08-15 15:35 472本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
JavaScript强化教程——jQuery 动画2
2016-08-12 14:12 633本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
bootstrap教程(二) —— 列表组listgroup
2016-08-11 14:46 644本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ... -
bootstrap教程(二)——导航条
2016-08-08 16:22 550本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍: ...
相关推荐
通过构建这样的应用,初学者可以快速掌握AngularJs的数据绑定和依赖注入等核心概念,以及如何不通过DOM操作来创建数据侦听器。 本教程强调了AngularJs相对于其他JavaScript框架的独特之处,包括其无插件、无需配置...
《疯狂前端开发讲义——jQuery+AngularJS+Bootstrap前端开发实战》是一本深入浅出的前端开发教程,它涵盖了三个核心的前端技术:jQuery、AngularJS和Bootstrap。这些技术在现代网页开发中扮演着至关重要的角色,使得...
#### 四、AngularJS中的依赖注入 依赖注入(Dependency Injection, DI)是AngularJS的核心特性之一。它使得组件之间的耦合度降低,提高了代码的可读性和可维护性。在AngularJS中,依赖可以通过以下几种方式注入: ...
AngularJS是一个由Google维护的JavaScript MVC框架,它提供了强大的数据绑定和依赖注入功能,使得前端开发更加高效。而Bootstrap则是Twitter开源的一套前端UI框架,它包含了一系列预先设计的组件和样式,能够快速...
《AngularJS实战》一书由陶国荣编著,是中国知名科技出版社——华章科技出版的一本关于AngularJS的实践教程。这本书旨在帮助读者深入理解AngularJS这一强大的前端框架,并通过实际项目案例提升开发技能。随书附带的...
1. **模块化**:AngularJS使用其自己的依赖注入系统,而Dojo使用AMD来管理模块。开发者需要将AngularJS的服务、控制器和指令转换为Dojo的定义模块。 2. **数据绑定**:AngularJS的双向数据绑定被Dojo的`dojo/...
在本教程中,我们将深入探讨如何使用AngularJS构建一个电子邮件系统,这源于Thinkful.com的AngularJS教程——"angular-mail"。AngularJS是Google维护的一个强大的前端JavaScript框架,它简化了网页应用程序的开发,...
在AngularJS章节中,你将学习到依赖注入、指令系统、数据绑定、服务以及控制器等核心概念,同时了解如何构建单页应用(SPA)以及进行路由管理。此外,还会探讨Scope、Directives和Filters的高级用法,帮助你提升...
**学习资源——Thinkful AngularJS教程** 描述中提到的"Thinkful AngularJS教程"是一个学习AngularJS的好途径。Thinkful是一个在线学习平台,提供了一系列编程课程,包括AngularJS。通过这样的教程,学习者可以系统...
6. **依赖注入(Dependency Injection)**:AngularJS的依赖注入机制简化了代码的组织和管理,它自动为控制器、服务等提供所需依赖,无需手动创建实例。在AngularJS_tuto8中,你将看到如何声明和使用依赖。 7. **...
3. **依赖注入**:AngularJS的依赖注入系统使得组件间的关系变得清晰,简化了代码,同时也提高了测试性。开发者无需手动创建对象,而是声明所需的服务,AngularJS会自动注入。 4. **服务**:AngularJS中的服务如$...
AngularJS的核心特性包括双向数据绑定、依赖注入、指令系统、服务、过滤器和模块化等。它通过扩展HTML语法,使得HTML更加适合声明式编程,从而简化了前端开发工作。在双向数据绑定中,视图和模型之间的数据变化会...
2. **依赖注入**:AngularJS的依赖注入系统允许开发者在不关心对象如何创建或管理的情况下,轻松获取和使用服务,降低了代码间的耦合度。 3. **指令系统**:AngularJS通过自定义HTML指令扩展了DOM,让开发者可以...
了解这些基础知识后,你可以继续探索AngularJS的其他核心特性,如服务(services)、控制器(controllers)、过滤器(filters)、指令(directives)和路由(routing),以及更高级的主题,如依赖注入和模块化开发。...
7. **依赖注入(Dependency Injection)**:AngularJS通过依赖注入机制,自动管理对象的创建和依赖关系,简化了代码维护和测试。 在Codecademy的AngularJS Gameboard教程中,你将逐步学习如何设置这些组件,并实际...
3. **依赖注入**:AngularJS的依赖注入系统使得组件之间的依赖关系变得清晰,降低了代码的耦合度。开发者可以轻松地在不同组件间共享服务,而无需关心它们是如何被创建或获取的。 4. **服务**:AngularJS提供了多种...