AngularJS 应用模块化的使用


Posted in Javascript onApril 04, 2018

一.模块化的好处

(1)实现逻辑更清晰、可读性强;
(2)团队开发分工明确,容易控制;
(3)充分利用可以重用代码;
(4)抽象出可公用的模块,可维护性强;
(5)模块化的遗留系统方便组装开发新的相似系统.

二.AngularJS模块的定义

(1)angular对象的module()使用方法:

// 定义一个无依赖模块
  angular.module('appModule',[]);
  // 定义一个依赖module1、module2的模块
  angular.module('appModule',['module1','module2']);

(2)angular.module()方法:接收三个参数

第一个为模块的名称,第二个是数组,表示模块依赖的模块的名称。如果不需要依赖其他模块,传入空数组即可.第三个参数可选,接收一个方法,用于对模块进行配置,作用和模块实例的config()方法相同.

angular.module()方法返回一个模块实例对象,可以调用该对象的controller()、directive()、filter()等方法向模块中添加控制器、指令、过滤器等其他组件.

(3)页面引用模块:ng-app指令

<html ng-app="appMobile">

三.使用模块解决命名冲突问题

两个页面共用一个js文件,控制器的定义放在common.js中,当两个页面定义的控制器名称相同时就会产生冲突,AngularJS中通过使用模块化来解决命名冲突.调用 angular.module()方法创建两个模块实例,分别调用这两个模块实例的controller()方法创建两个名称相同的控制器,但这两个控制器属于不同的模块.虽然html页面中的控制器名称都是UserController,但是分属于不同的模块,因此避免了冲突.

var loginModule = angular.module("loginModule",[]);
loginModule.controller("UserController",function($scope,$log){
  
  $scope.uname = "login";
  $scope.pword = "admin";
  $scope.submit = function(){
    alert("登录模块: UserController");
  }
  
})

var registerModule = angular.module("registerModule",[]);
registerModule.controller("UserController",function($scope,$log){
  
  $scope.uname = "register";
  $scope.pword = "admin";
  $scope.submit = function(){
    alert("注册模块: UserController");
  }  
})

四.模块化的最佳实践

假设项目名称:app,包含login和register两个模块:

├─app
│ │
│ ├──css---------------CSS样式
│ ├──img---------------图片资源
│ ├──js----------------JS代码  
│ │  common.js // 公共JS代码
│ │
│ ├──modules
│ │  │
│ │  ├─login----------------登录模块
│ │  │  │  
│ │  │  │   loginModule.js----------------登录模块定义
│ │  │  │   
│ │  │  ├─css
│ │  │  ├─js  
│ │  │  │   directives.js
│ │  │  │   filters.js
│ │  │  │   controllers.js----------------控制器定义
│ │  │  │  
│ │  │  │  
│ │  │  └─views  
│ │  │     login.html
│ │  │     
│ │  └──register----------------注册模块  
│ │     │  
│ │     │   registerModule.js----------------注册模块定义
│ │     │   
│ │     ├─css
│ │     ├─js  
│ │     │   directives.js
│ │     │   filters.js
│ │     │   controllers.js----------------控制器定义
│ │     │  
│ │     │  
│ │     └─views  
│ │       register.html
│ │

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
跟我一起学写jQuery插件开发方法(附完整实例及下载)
Apr 01 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
Feb 10 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
Oct 18 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
微信小程序动态增加按钮组件
Sep 14 Javascript
微信小程序实现顶部导航特效
Jan 28 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
jquery获取input输入框中的值
Nov 13 jQuery
js实现时间日期校验
May 26 Javascript
vue实现从外部修改组件内部的变量的值
Jul 30 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 Javascript
vue todo-list组件发布到npm上的方法
Apr 04 #Javascript
D3.js实现简洁实用的动态仪表盘的示例
Apr 04 #Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
Apr 04 #Javascript
10分钟上手vue-cli 3.0 入门介绍
Apr 04 #Javascript
详解vue 单页应用(spa)前端路由实现原理
Apr 04 #Javascript
vue cli升级webapck4总结
Apr 04 #Javascript
JavaScript实现短暂提示框功能
Apr 04 #Javascript
You might like
当海贼王变成JOJO风
2020/03/02 日漫
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
MySQL授权问题总结
2007/05/06 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
python实现ping命令小程序
2020/12/28 Python
单身旅行者的单身假期:Just You
2018/04/08 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
两则小学生的自我评价分享
2013/11/14 职场文书
资料员岗位职责
2013/11/17 职场文书
社区科普工作方案
2014/06/03 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
公司员工活动策划方案
2014/08/20 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
出国留学导师推荐信
2015/03/26 职场文书
Python绘制分类图的方法
2021/04/20 Python