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 相关文章推荐
永不消失的title提示代码
Feb 15 Javascript
javascript 当前日期加(天、周、月、年)
Aug 09 Javascript
JS 事件绑定函数代码
Apr 28 Javascript
Js表格万条数据瞬间加载实现代码
Feb 20 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
详解Javascript事件驱动编程
Jan 03 Javascript
详解用vue.js和laravel实现微信支付
Jun 23 Javascript
vue组件父与子通信详解(一)
Nov 07 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
微信小程序实现聊天对话(文本、图片)功能
Jul 06 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
jQuery Ajax使用 全解析
2010/12/15 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
pandas object格式转float64格式的方法
2018/04/10 Python
Python装饰器用法实例总结
2018/05/26 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
老总助理工作岗位职责
2014/02/06 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
售后客服工作职责
2014/06/16 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
2014年党支部工作总结
2014/11/13 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书