AngularJS 模块详解及简单实例


Posted in Javascript onJuly 28, 2016

AngularJS 模块

模块定义了一个应用程序。

模块是应用程序中不同部分的容器。

模块是应用控制器的容器。

控制器通常属于一个模块。

创建模块

你可以通过 AngularJS 的 angular.module 函数来创建模块:

<div ng-app="myApp">...</div>

<script>

var app = angular.module("myApp", []); 

</script>

"myApp" 参数对应执行应用的 HTML 元素。

现在你可以在 AngularJS 应用中添加控制器,指令,过滤器等。

添加控制器

你可以使用 ng-controller 指令来添加应用的控制器:

AngularJS 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
 $scope.firstName = "John";
 $scope.lastName = "Doe";
});
</script>

</body>
</html>

 运行效果:

 John Doe

 你可以在 AngularJS 控制器 章节学到更多关于控制器的知识。

添加指令

AngularJS 提供了很多内置的指令,你可以使用它们来为你的应用添加功能。

完整的指令内容可以参阅 AngularJS 参考手册。

此外,你可以使用模块来为你应用添加自己的指令:

AngularJS 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<div ng-app="myApp" runoob-directive></div>

<script>

var app = angular.module("myApp", []);

app.directive("runoobDirective", function() {
 return {
  template : "我在指令构造器中创建!"
 };
});
</script>

</body>
</html>

 运行结果:

           我在指令构造器中创建! 

 你可以在 AngularJS 指令 章节学到更多关于指令的知识。

模块和控制器包含在 JS 文件中

通常 AngularJS 应用程序将模块和控制器包含在 JavaScript 文件中。

在以下实例中, "myApp.js" 包含了应用模块的定义程序, "myCtrl.js" 文件包含了控制器:

AngularJS 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script src="myApp.js"></script>
<script src="myCtrl.js"></script>

</body>
</html>

 运行结果:

  John Doe

 myApp.js

var app = angular.module("myApp", []);

Note 在模块定义中 [] 参数用于定义模块的依赖关系。

中括号[]表示该模块没有依赖,如果有依赖的话会在中括号写上依赖的模块名字。

myCtrl.js

app.controller("myCtrl", function($scope) {
 $scope.firstName	= "John";
 $scope.lastName= "Doe";
});

 函数会影响到全局命名空间

JavaScript 中应避免使用全局函数。因为他们很容易被其他脚本文件覆盖。

AngularJS 模块让所有函数的作用域在该模块下,避免了该问题。

什么时候载入库?

 注意:在我们的实例中,所有 AngularJS 库都在 HTML 文档的头部载入。

对于 HTML 应用程序,通常建议把所有的脚本都放置在 <body> 元素的最底部。

这会提高网页加载速度,因为 HTML 加载不受制于脚本加载。

在我们的多个 AngularJS 实例中,您将看到 AngularJS 库是在文档的 <head> 区域被加载。

在我们的实例中,AngularJS 在 <head> 元素中被加载,因为对 angular.module 的调用只能在库加载完成后才能进行。

另一个解决方案是在 <body> 元素中加载 AngularJS 库,但是必须放置在您的 AngularJS 脚本前面:

AngularJS 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
 $scope.firstName = "John";
 $scope.lastName = "Doe";
});
</script>

</body>
</html>

 运行结果:

John Doe

以上就是对AngularJS 模块资料的整理,后续继续补充,希望能帮助编程的朋友。

Javascript 相关文章推荐
jquery checkbox,radio是否选中的判断代码
Mar 20 Javascript
可自己添加html的伪弹出框实现代码
Sep 08 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
Bootstrap笔记—折叠实例代码
Mar 13 Javascript
用js将long型数据转换成date型或datetime型的实例
Jul 03 Javascript
angularjs实现简单的购物车功能
Sep 21 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
Jul 03 Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
在博客园博文中添加自定义右键菜单的方法详解
Feb 05 Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 Javascript
jQuery制作网页版选项卡
Jul 28 #Javascript
AngularJS 中的事件详解
Jul 28 #Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 #Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 #Javascript
浅谈js中调用函数时加不加括号的问题
Jul 28 #Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 #Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 #Javascript
You might like
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
python获取豆瓣电影简介代码分享
2014/01/16 Python
简单的Python2.7编程初学经验总结
2015/04/01 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
创业计划书的内容步骤和要领
2014/01/04 职场文书
秋季运动会稿件
2014/01/30 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
仓库管理制度范本
2015/08/04 职场文书
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技
Java对文件的读写操作方法
2022/04/29 Java/Android
如何利用python实现Simhash算法
2022/06/28 Python
Windows7下FTP搭建图文教程
2022/08/05 Servers