AngularJS入门教程之模块化操作用法示例


Posted in Javascript onNovember 02, 2016

本文实例讲述了AngularJS模块化操作用法。分享给大家供大家参考,具体如下:

在前面几节教程中,代码比较少,为了方便说明问题笔者?⒖刂破鞔?攵夹丛诹?TML页面中,实际上这并不是什么好的编程习惯,而且可维护性差。通常的做法都是?⒋?硪滴衤呒?拇?胄丛谝桓龅ザ赖?S文件中,然后在HTML页面中引入该文件。

然而这样会带来新的问题,我们的控制器全都定义在全局的命名空间中,假设我们有一个公共的JS文件,在登录页面和密码修改页面都引入这个JS,A开发人员和B开发人员英雄所见略同,对控制器的命名都是UserController,这样就会导致命名冲突。而且我们在新增一个控制器的时候总是要担心是不是已经有了一个同名的控制器,代码的扩展性是不是很差呢?

AngularJS中的模块能够很好的解决这个问题,接下来我们看看AngularJs怎么处理命名冲突问题。

代码清单1. tutorial04_1.html

<!DOCTYPE html>
<html ng-app="loginMod">
<head lang="en">
 <meta charset="UTF-8">
 <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
 <title>tutorial04_1</title>
</head>
<body>
<div ng-controller="UserController">
 用户名:<input type="text" ng-model="name" placeholder="用户名"/>
 密码:<input type="password" ng-model="pword" placeholder="密码"/>
 <button ng-click="login()">提交</button>
 <p>您输入的用户名:{{name}}</p>
 <p>您输入的密码:{{pword}}</p>
</div>
<script type="text/javascript" src="js/tutorial04.js">
</script>
</body>
</html>

代码清单2. tutorial04_2.html

<!DOCTYPE html>
<html ng-app="pwordMod">
<head lang="en">
 <meta charset="UTF-8">
 <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
 <title>tutorial04_2</title>
</head>
<body>
<div ng-controller="UserController">
 密码:<input type="password" ng-model="pword" placeholder="密码"/>
 <button ng-click="changePwrd()">提交</button>
 <p>您输入的密码:{{pword}}</p>
</div>
<script type="text/javascript" src="js/tutorial04.js">
</script>
</body>
</html>

代码清单3. tutorial04.js

var loginMod = angular.module("loginMod", []);
loginMod.controller("UserController",function($scope,$log)
 {
  $scope.name="admin";
  $scope.pword="123456";
  $log.info( $scope.name);
  $log.info( $scope.pword);
  $scope.login = function()
  {
   alert("登录");
  }
 }
);
var pwordMod = angular.module("pwordMod", []);
pwordMod.controller("UserController",function($scope,$log)
 {
  $scope.pword="123456";
  $scope.changePwrd = function()
  {
   alert("修改密码");
  }
 }
);

我们有登录页面tutorial04_1.html和修改密码页面tutorial04_2.html,控制器代码都写在tutorial04.js中,在这两个页面中都定义了相同的控制器UserController。

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

通过这行代码定义模块,第一个参数为模块名。第二个参数是一个数组,为可选,如果指定该参数则创建一个新的模块,不指定则从配置中检索。

loginMod.controller("UserController",function($scope,$log)...

通过controller函数向模块中添加一个控制器,第一个参数为控制器名称,第二个参数为控制器实现部分。

然后在tutorial04_1.html和tutorial04_2.html就可以使用ng-app="loginMod"和ng-app="pwordMod"来指定页面中的控制器属于哪个模块。

在浏览器中运行页面可以看到,不同页面调用不用模块中的UserController控制器:

AngularJS入门教程之模块化操作用法示例

AngularJS入门教程之模块化操作用法示例

AngularJS源码可点击此处本站下载

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
JavaScript使用cookie
Feb 02 Javascript
jQuery 获取URL参数的插件
Mar 04 Javascript
jQuery渐变发光导航菜单的实例代码
Mar 27 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
js阻止冒泡和默认事件(默认行为)详解
Oct 20 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 Javascript
js实现全选反选不选功能代码详解
Apr 24 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
javascript中闭包closure的深入讲解
Mar 03 Javascript
vue+springboot实现登录验证码
May 27 Vue.js
js 打开新页面在屏幕中间的实现方法
Nov 02 #Javascript
jQuery图片切换动画特效
Nov 02 #Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 #Javascript
AngularJS入门教程之MVC架构实例分析
Nov 01 #Javascript
bootstrap table复杂操作代码
Nov 01 #Javascript
bootstrap flask登录页面编写实例
Nov 01 #Javascript
JS弹出窗口的运用与技巧大全
Nov 01 #Javascript
You might like
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
python爬取NUS-WIDE数据库图片
2016/10/05 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python实现一个简单的ping工具方法
2019/01/31 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
大学生表扬信范文
2014/01/09 职场文书
干部作风建设心得体会
2014/10/22 职场文书
2014年应急工作总结
2014/12/11 职场文书
2015年端午节活动方案
2015/05/05 职场文书
小学毕业教师寄语
2019/06/21 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL