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获取input的value问题说明
Aug 19 Javascript
JavaScript中的原型链prototype介绍
Dec 30 Javascript
Node.js巧妙实现Web应用代码热更新
Oct 22 Javascript
AngularJS 使用 UI Router 实现表单向导
Jan 29 Javascript
BootStrap智能表单实战系列(七)验证的支持
Jun 13 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
详解微信小程序开发之下拉刷新 上拉加载
Nov 24 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
May 11 Javascript
JS数组操作之增删改查的简单实现
Aug 21 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
May 17 Javascript
node中的密码安全(加密)
Sep 17 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 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
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
php获取文件大小的方法
2014/02/26 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
asp.net和php的区别点总结
2019/10/10 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
vue.js实现简单购物车功能
2020/05/30 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
Python中的ctime()方法使用教程
2015/05/22 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python实现Event回调机制的方法
2019/02/13 Python
kali中python版本的切换方法
2019/07/11 Python
行政助理的职责
2013/11/14 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android