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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
JavaScript中常见陷阱小结
Apr 27 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
Oct 11 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
Jan 29 Javascript
html页面显示年月日时分秒和星期几的两种方式
Aug 20 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
js使用post 方式打开新窗口
Feb 26 Javascript
JavaScript数组迭代器实例分析
Jun 09 Javascript
jQuery短信验证倒计时功能实现方法详解
May 25 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
Django模板继承 extend标签实例代码详解
May 16 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上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python协程的用法和例子详解
2017/09/09 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
广告设计专业自荐信范文
2013/11/14 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
英语求职信范文
2014/05/23 职场文书
2014年国庆节寄语
2014/09/19 职场文书
2015年春节标语口号
2014/12/09 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书