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 相关文章推荐
js异或加解密效果代码
Jun 25 Javascript
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
javascript 获取模态窗口的滚动位置代码
Aug 06 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
Nov 07 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
Mar 24 Javascript
javascript实现网页字符定位的方法
Jul 14 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
webpack入门+react环境配置
Feb 08 Javascript
jQuery实现动态添加节点与遍历节点功能示例
Nov 09 jQuery
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
Dec 19 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
也谈 PHP 和 MYSQL
2006/10/09 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
js自定义input文件上传样式
2018/10/26 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Python 实现try重新执行
2019/12/21 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
护士自我鉴定
2013/10/23 职场文书
单位租房协议书范本
2014/12/04 职场文书
感谢信怎么写
2015/01/21 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
聘任书格式及范文
2015/09/21 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
七年级作文之英语老师
2019/10/28 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python