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在IE和FireFox中的不同表现简析
Dec 03 Javascript
Javascript表格翻页效果实现思路及代码
Aug 23 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
详解JavaScript中shift()方法的使用
Jun 09 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
Jan 08 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
Angular 2父子组件数据传递之局部变量获取子组件其他成员
Jul 04 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
vue打包之后生成一个配置文件修改接口的方法
Dec 09 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 模拟$_PUT实现代码
2010/03/15 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
python读取和保存视频文件
2018/04/16 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
详解Python self 参数
2019/08/30 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Django后台管理系统的图文使用教学
2020/01/20 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
介绍一下Make? 为什么使用make
2016/07/31 面试题
人事部岗位职责范本
2014/03/05 职场文书
推广活动策划方案
2014/08/23 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
医学生自荐信范文
2015/03/05 职场文书
Python 阶乘详解
2021/10/05 Python
mysql中整数数据类型tinyint详解
2021/12/06 MySQL