Angular组件化管理实现方法分析


Posted in Javascript onMarch 17, 2017

本文实例分析了Angular组件化管理实现方法。分享给大家供大家参考,具体如下:

在做sass产品页面的时候,往往每个页面的header和footer都是一样的,还有最近我做的页面,类似datetimepicker这种组件,其实都是可以复用的代码,所以如果能把这些公用的UI组件提取出来,对于维护就会方便很多啦!!

angular框架就支持这种组件化管理,不过也有优缺点,我先来说实现方法哈!

index.html:没有用到路由,所以js都是src生引进来的

<head>
  <title>template模块化</title>
  <script type="text/javascript" src="js/lib/jquery.min.js"></script>
  <script type="text/javascript" src="js/lib/angular.min.js"></script>
  <script type="text/javascript" src="js/angular-util.js"></script>
  <script type="text/javascript" src="js/header.js"></script>
  <!-- 单页加载 -->
  <script type="text/javascript" src="js/index.js"></script>
</head>
<body ng-app="frameApp" ng-controller="frameCtrl">
  <header frame-header></header>
  <div ng-click="a1()">click</div>
  <div>{{ default }}</div>
</body>

header.js:用闭包封装了header组件指向template模板,这里面的A指的是上面html里frame-header的属性,在这里面的link还可以调用当前作用域内的方法

(function () {
  var header = angular.module("header",[]);
  header.directive('frameHeader',function(){
    return {
      restrice: 'A',
      templateUrl: 'template.html',
      replace: false,
      link: function ($scope, iElm, iAttrs) {
        $scope.navigateTo = function(){
          console.log($scope.aa)
        }
      }
    }
  });
})();

header.html:模板部分,我简单的写了个导航

<ul>
  <li ng-click="navigateTo('index')"><a href="index.html" rel="external nofollow" >导航1</a></li>
  <li><a href="page1.html" rel="external nofollow" >导航2</a></li>
  <li>导航3</li>
  <li>导航4</li>
</ul>

index.js:引入header模块

var myApp = angular.module("frameApp",['utilModule','header']);
myApp.controller('frameCtrl',
  ['$scope','utilService',
  function($scope,utilService){
    $scope.aa = 'yyyyyyyyyyy'
    $scope.a1 = function(){
      utilService.lemon()
    };
    $scope.default = 'this is default'
  }]);

这样一来,大功告成啦就!每个页面只要<header frame-header></header>这个标签,就能引入头部导航了!

不过这种组件化的引入方式,我个人并不推荐使用在引入header和footer,因为这样的话,相当于每个页面都会加载一遍templat.html很影响速度,我建议,在引入datetimepicker这样的组件的时候在使用!因为这种小组件是按需加载的,用得着再加载,不会影响页面响应效率。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
Jun 08 Javascript
玩转方法:call和apply
May 08 Javascript
jQuery中nextAll()方法用法实例
Jan 07 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
Angular+Node生成随机数的方法
Jun 16 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
vue引入ueditor及node后台配置详解
Jan 03 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
小程序实现左滑删除功能
Oct 30 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 Javascript
Bootstrap表单制作代码
Mar 17 #Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 #Javascript
使用vue.js编写蓝色拼图小游戏
Mar 17 #Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 #Javascript
javascript 动态生成css代码的两种方法
Mar 17 #Javascript
AngularJS中$http使用的简单介绍
Mar 17 #Javascript
单击按钮发送验证码,出现倒计时的简单实例
Mar 17 #Javascript
You might like
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
php获取操作系统语言代码
2013/11/04 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
js实现文字截断功能
2016/09/14 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
Python中的hypot()方法使用简介
2015/05/18 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
学生思想表现的评语
2014/01/30 职场文书
辅导员评语
2014/05/04 职场文书
高一新生军训方案
2014/05/12 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
武侯祠导游词
2015/02/04 职场文书
天那边观后感
2015/06/09 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server