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 相关文章推荐
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
Web表单提交之disabled问题js解决方法
Jan 13 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
Angular的事件和表单详解
Dec 26 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
JS与HTML结合实现流程进度展示条思路详解
Sep 03 Javascript
使用JS代码实现俄罗斯方块游戏
Aug 03 Javascript
小程序中this.setData的使用和注意事项
Aug 28 Javascript
JavaScript中作用域链的概念及用途讲解
Aug 06 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python中zip()函数用法实例教程
2014/07/31 Python
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
详解python中的json和字典dict
2018/06/22 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
博士生入学考试推荐信
2013/11/17 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
通知格式
2015/04/27 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL