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 相关文章推荐
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
ASP中Sub和Function的区别说明
Aug 30 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
Dec 20 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
Mar 06 Javascript
js中document.write的那点事
Dec 12 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
JavaScript设计模式初探
Jan 07 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
Jul 27 Javascript
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
如何阻止移动端浏览器点击图片浏览
Aug 29 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
PHP脚本的10个技巧(1)
2006/10/09 PHP
php验证码实现代码(3种)
2015/09/07 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
Python使用numpy实现BP神经网络
2018/03/10 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
实用自动化运维Python脚本分享
2018/06/04 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
浅析Python 责任链设计模式
2020/09/11 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
文体活动实施方案
2014/03/27 职场文书
英雄儿女观后感
2015/06/09 职场文书
同学聚会开幕词
2019/04/02 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python