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异步编程Promise模式的6个特性
Apr 03 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
Mar 10 Javascript
vue2.0实战之基础入门(1)
Mar 27 Javascript
React入门教程之Hello World以及环境搭建详解
Jul 11 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
一步步教会你微信小程序的登录鉴权
Apr 09 Javascript
node.js制作一个简单的登录拦截器
Feb 10 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
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
极典R601SW收音机
2021/03/02 无线电
YB217、YB235、YB400浅听
2021/03/02 无线电
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
php中文验证码实现方法
2015/06/18 PHP
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
Python中%r和%s的详解及区别
2017/03/16 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
传媒专业推荐信范文
2013/11/23 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
高级编程求职信模板
2014/02/16 职场文书
倡导文明标语
2014/06/16 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
大国崛起日本观后感
2015/06/02 职场文书