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实现二分查找法实现代码
Nov 12 Javascript
兼容主流浏览器的JS复制内容到剪贴板
Dec 12 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
Oct 17 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
微信小程序 支付功能(前端)的实现
May 24 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 Javascript
前端 javascript 实现文件下载的示例
Nov 24 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
php异常处理方法实例汇总
2015/06/24 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
node+express+jade制作简单网站指南
2014/11/26 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
详解vue axios二次封装
2018/07/22 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
如何搜索查找并解决Django相关的问题
2014/06/30 Python
Python 读写文件的操作代码
2018/09/20 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Python二元算术运算常用方法解析
2020/09/15 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
法学毕业生自荐信
2013/11/13 职场文书
小学生评语集锦
2014/04/18 职场文书
黄山导游词
2015/01/31 职场文书
先进个人自荐书
2015/03/06 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技