Angularjs学习笔记(二)----模块
一、定义
如何将全局定义的控制器模块化
先看下全局定义的控制器
var HelloCtrl=function($scope){
$scope.name='World';
}
模块化后代码
angular.module('hello',[])
.controller('HelloCtrl',function($scope){
$scope.name='World';
});
AngularJS为自己定义了全局命名空间angular,他提供多种功能及不少便利函数,module就是其中之一。
定义新的模块,需要传入名字,作为调用module的第一个参数,而第二个参数则表达此模块依赖哪些其他模块(上例中的模块不依赖其他模块)。
angular.module的调用会返回新创建模块的实例,然后就开始定义新的控制器。controller函数的参数如下:
- 控制器的名字(字符串类型)
- 控制器的构造函数
模块已经定义好了,现在要告知AngularJS它的存在,这只要为ng-app属性赋值即可。
<body ng-app="hello">
二、模块的生命周期
2.1 配置阶段
2.2 编译阶段
2.3 不同阶段与不同的注册方法
| 对象种类 | 可以在配置阶段注入 | 可以在运行阶段注入 | |
| Constant | 常量值 | Yes | Yes |
| Variable | 变量值 | — | Yes |
| Service | 构造函数创建的新对象 | — | Yes |
| Factory | 工厂函数返回的新对象 | — | Yes |
| Provider | $get工厂函数创建的新对象 | Yes | — |
三、模块依赖
angular.module('app',['engines'])
.factory('car',function($log,dieselEngine){
return{
start:function(){
$log.info('Starting'+dieselEngine.type);
};
}
});
angular.module('engines',[])
.factory('dieselEngine',function(){
return{
type:'diesel'
};
});
car服务在app模块中定义,app模块依赖于engines模块,后者定义dieselEngine服务,因此car可以注入dieselEngine.
下面这个例子说明兄弟模块的服务也互相可见。car也注入了dieselEngine。
angular.module('app',['engines','cars'])
angular.modul('cars',[])
.factory('car',function($log,dieselEngine)
return{
start:function(){
$log.info('Starting'+dieselEngine.type);
}
};
});
angular.module('engines',[])
.factory('dieselEngine',function(){
return{
type:'diesel'
};
});
下面这个例子来说明每个名字只存在唯一的服务,我们可以利用这点,在依赖某模块的同时去覆盖此模块提供的服务。
angular.module('app',['engines','cars'])
angular.modul('cars',[])
.factory('car',function($log,dieselEngine)
return{
start:function(){
$log.info('Starting'+dieselEngine.type);
};
}
})
.factory('dieselEngine',function(){
return{
type:'diesel'
};
});
car服务里的dieselEngine服务是自己模块的服务,它将兄弟模块engines里的同名服务给覆盖掉了。
Angularjs学习笔记(二)----模块的更多相关文章
- AngularJS学习笔记二:AngularJS指令
AngularJS 指令: AngularJS 通过被称为 指令 的新属性来扩展 HTML. AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-. 几个常用 指令: ng-app 指令 ...
- angularJS学习笔记二
angularJS四个特性 1.MVC <!doctype html> <html ng-app> <head> <meta charset="ut ...
- AngularJS学习笔记(二)
一.AngularJS Select(选择框) 1.使用 ng-options 创建选择框 <div ng-app="myApp" ng-controller="m ...
- AngularJS 学习笔记二
AngularJS指令 指令 描述 讲解 ng_app 定义应用程序的根元素. 指令 ng_bind 绑定 HTML 元素到应用程序数据. 简介 ng_click 定义元素被单击时的行为. HTML ...
- AngularJS学习笔记(二) 表单验证案例(ng-repeat/filter)
这一节相对来说需要理解的东西不是太多,记住了那些api就行了. 还是一个案例(同样来自miaov),一个表单验证,先上代码,然后再对对应的内容进行解释. <!DOCTYPE html> & ...
- AngularJs学习笔记--Using $location
原版地址:http://code.angularjs.org/1.0.2/docs/guide/dev_guide.services.$location 一.What does it do? $loc ...
- AngularJs学习笔记--Modules
原版地址:http://code.angularjs.org/1.0.2/docs/guide/module 一.什么是Module? 很多应用都有一个用于初始化.加载(wires是这个意思吗?)和启 ...
- AngularJs学习笔记--Forms
原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...
- AngularJs学习笔记--expression
原版地址:http://code.angularjs.org/1.0.2/docs/guide/expression 表达式(Expressions)是类Javascript的代码片段,通常放置在绑定 ...
- AngularJs学习笔记--directive
原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...
随机推荐
- jQuery的编码标准和最佳实践
不知道在哪里看到了这篇关于jQuery编码的文章,挺实用的,恰好最近在研究jQuery的基础知识,今天打开收藏夹来翻译一下,原文的英语不难,但是内容很实用,可能有大神已经翻译过了,大家看精华就行了. ...
- LeetCode 397. Integer Replacement
397. Integer Replacement QuestionEditorial Solution My Submissions Total Accepted: 5878 Total Subm ...
- Druid 基础使用-操作篇(Imply )
一.Imply Druid 原生的配置较麻烦,在上一篇单机版安装中有所涉及 Imply 基于Druid 进行了一些组件的开发,提供开源社区版本和商业版,简化了部署,开发了一些应用.https:// ...
- Asprise-OCR的使用
Asprise-OCR下载地址: http://asprise.com/product/ocr/download.php?lang=csharp 其中需要使用的3个dll是AspriseOCR.dll ...
- 手机APP测试的几大点
移动互联网App测试点包括: 1.安全测试: 安全测试包括: a.软件是否存在扣费风险,比如发送短信,拨打电话,连接网络等. b.软件是否存在泄漏用户隐私的风险,比如访问手机信息,访问联系人信息等. ...
- gdb 调试程序
要调试生成的可执行程序,必须在生成的时候加入-g选项,生成可以调试的代码 例如:gcc -o test a.c b.c -g 这样gcc就会在链接的时候加入一些用于调试的符号 在生成可以调试的可执行程 ...
- DELL服务器系统安装
背景环境:DELL poweredge R920 和DELL poweredege R730 新机服务器系统安装 由于以前没有自己单独装过这样的服务器,总感觉复杂,今天实战了几台服务器,挺简单的,为了 ...
- <a>标签中的href="javascript:;"是什么意思?
例子:<a href="javascript:;">我的大学</a> javascript: 是一个伪协议 javascript:是表示在触发<a&g ...
- sql prompt 安装使用教程
sql prompt:和vs的自动提示一样 数据库:2008r2 下载地址:http://download.csdn.net/detail/wozengcong/9048381 安装教程:http:/ ...
- Nodejs学习(三)-安装nodejs supervisor,提高点效率吧。
安装好了express准备写项目,可是发现随便改一下js都要使用npm start重新启动才能生效,这个很不好,搜索一下发现有这么一个模块supervisor.那就安装一下吧. 1.安装,这个必须是全 ...