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 相关文章推荐
jQuery实现鼠标滑过遮罩并高亮显示效果
Jul 16 Javascript
jquery 循环显示div的示例代码
Oct 18 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
玩转JavaScript OOP - 类的实现详解
Jun 08 Javascript
jQuery通用的全局遍历方法$.each()用法实例
Jul 04 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
Apr 14 Javascript
获取url中用&amp;隔开的参数实例(分享)
May 28 Javascript
vue实现树形菜单效果
Mar 19 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
javascript动态加载三
2012/08/22 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
Python实现全排列的打印
2018/08/18 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
flask开启多线程的具体方法
2020/08/02 Python
8种常用的Python工具
2020/08/05 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
人代会标语
2014/06/30 职场文书
身边的榜样活动方案
2014/08/20 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
民主生活会意见
2015/06/05 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server