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 相关文章推荐
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
Js四则运算函数代码
Jul 21 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
Feb 20 Javascript
mui 打开新窗口的方式总结及注意事项
Aug 20 Javascript
垃圾回收器的相关知识点总结
May 13 Javascript
vue axios数据请求及vue中使用axios的方法
Sep 10 Javascript
vue组件三大核心概念图文详解
May 30 Javascript
Electron 调用命令行(cmd)
Sep 23 Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 Javascript
微信小程序自定义底部弹出框功能
Nov 18 Javascript
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
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
基于python实现KNN分类算法
2020/04/23 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
煤矿班组长的职责
2013/12/25 职场文书
大学毕业感言100字
2014/02/03 职场文书
中学生家长评语大全
2014/04/16 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
工会工作先进事迹
2014/08/18 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
人民币符号
2022/02/17 杂记
JavaScript实现两个数组的交集
2022/03/25 Javascript
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
GO中sync包自由控制并发示例详解
2022/08/05 Golang