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 匿名函数及其代码模式原理
Mar 19 Javascript
JavaScript中两种链式调用实现代码
Jan 12 Javascript
一个可以增加和删除行的table并可编辑表格中内容
Jun 16 Javascript
js遍历子节点子元素附属性及方法
Aug 19 Javascript
javascript面向对象之this关键词用法分析
Jan 13 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
javascript每日必学之条件分支
Feb 17 Javascript
jquery实现垂直和水平菜单导航栏
Aug 27 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 Javascript
浅谈JavaScript正则表达式-非捕获性分组
Mar 08 Javascript
vue 文件目录结构详解
Nov 24 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 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
一个域名查询的程序
2006/10/09 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
python中怎么表示空值
2020/06/19 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
自主招生自荐信格式
2013/12/03 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
团代会邀请函
2015/02/02 职场文书
公司安全管理制度范本
2015/08/05 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书