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 相关文章推荐
jquery复选框CHECKBOX全选、反选
Aug 30 Javascript
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
Jquery实现的一种常用高亮效果示例代码
Jan 28 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
深入理解jQuery事件绑定
Jun 02 Javascript
js图片上传的封装代码
Aug 01 Javascript
javascript 中事件冒泡和事件捕获机制的详解
Sep 01 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 Javascript
JSON获取属性值方法代码实例
Jun 30 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
图解上海144收音机
2021/03/02 无线电
php join函数应用
2011/05/04 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
用console.table()调试javascript
2014/09/04 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
babel基本使用详解
2017/02/17 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python async with和async for的使用
2019/06/20 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
使用python turtle画高达
2020/01/19 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
工程承包协议书
2014/04/22 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
员工家属慰问信
2015/03/24 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
Python Django项目和应用的创建详解
2021/11/27 Python
JavaScript实现简单的音乐播放器
2022/08/14 Javascript