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 相关文章推荐
javascript new一个对象的实质
Jan 07 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
Nov 13 Javascript
JS组件Bootstrap Table使用方法详解
Feb 02 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
简单实现js悬浮导航效果
Feb 05 Javascript
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
vue制作toast组件npm包示例代码
Oct 29 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 Memcache 中实现消息队列
2009/11/24 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
利用python实现AR教程
2019/11/20 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
2019年c语言经典面试题目
2016/08/17 面试题
高一化学教学反思
2014/02/05 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2016年公司新年寄语
2015/08/17 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python