AngularJS 模块化详解及实例代码


Posted in Javascript onSeptember 14, 2016

AngularJS有几大特性,比如:

1 MVC

2 模块化

3 指令系统

4 双向数据绑定

那么本篇就来看看AngularJS的模块化。

首先先说一下为什么要实现模块化:

1 增加了模块的可重用性

2 通过定义模块,实现加载顺序的自定义

3 在单元测试中,不必加载所有的内容

之前做的几个例子,控制器的代码直接写在script标签里面,这样声明的函数都是全局的,显然不是一个最好的选择。

下面看看如何进行模块化:       

<script type="text/javascript">
      var myAppModule = angular.module('myApp',[]);
      
      myAppModule.filter('test',function(){
        return function(name){
          return 'hello, '+name+'!';
        };
      });

      myAppModule.controller('myAppCtrl',['$scope',function($scope){
        $scope.name='xingoo';
      }]);
    </script>

首先,通过全局变量angular创建模块myAppModule

angular.module('myApp',[]);

第一个参数是绑定的应用app名称,这个app标识了页面中angular的入口点,类似main函数的作用。

第二个参数[]里面标识了依赖的模块。

下面看看如何使用模块吧!

<!doctype html>
<html ng-app="myApp">
  <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
  </head>
  <body>
    <div ng-controller="myAppCtrl">
      {{name | test }}
    </div>
    <script type="text/javascript">
      var myAppModule = angular.module('myApp',[]);
      
      myAppModule.filter('test',function(){
        return function(name){
          return 'hello, '+name+'!';
        };
      });

      myAppModule.controller('myAppCtrl',['$scope',function($scope){
        $scope.name='xingoo';
      }]);
    </script>
  </body>
</html>

直接绑定myApp到ng-app上,就可以了。

  在script中,我们通过模块创建了一个filter和一个控制器。

filter的作用是 添加字符串修饰。

控制器的作用则是初始化变量。

程序的运行结果如下:

AngularJS 模块化详解及实例代码

          以上就是对AngularJS 模块化 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
网络图片延迟加载实现代码 超越jquery控件
Mar 27 Javascript
MooBox 基于Mootools的对话框插件
Jan 20 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
Sep 28 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 Javascript
jquery实现弹窗功能(窗口居中显示)
Feb 27 Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
AngularJS 支付倒计时功能实现思路
Jun 05 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
Jul 28 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 Javascript
AngularJS 过滤与排序详解及实例代码
Sep 14 #Javascript
AngularJS  自定义指令详解及实例代码
Sep 14 #Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 #Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 #Javascript
AngularJS bootstrap启动详解及实例代码
Sep 14 #Javascript
AngularJS equal比较对象实例详解
Sep 14 #Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 #Javascript
You might like
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
收音机指标测试方法及仪器
2021/03/01 无线电
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP框架性能测试报告
2016/05/08 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
简单的js计算器实现
2016/10/26 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
vue-router 起步步骤详解
2019/03/26 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python中字符串前面加r的作用
2015/06/04 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
简单了解python关系(比较)运算符
2019/07/08 Python
python如何将多个PDF进行合并
2019/08/13 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
Python过滤序列元素的方法
2020/07/31 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
校园安全标语
2014/06/07 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
先进工作者申报材料
2014/12/23 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
MySQL系列之十一 日志记录
2021/07/02 MySQL