Angularjs使用directive自定义指令实现attribute继承的方法详解


Posted in Javascript onAugust 05, 2016

本文实例讲述了Angularjs使用directive自定义指令实现attribute继承的方法。分享给大家供大家参考,具体如下:

一、Html代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title></title>
  <script src="../../Content/Plugins/Angular/angular.min.js"></script>
</head>
<body ng-app="mainApp" ng-controller="mainController">
  <quber-grid style="border: 1px solid #f00;" title="qubernet"></quber-grid>
</body>
</html>

二、tmp.html文件

<div quber-grid-attr>
  我是测试的模板内容!
</div>

三、Js代码:

//初始化Angular对象
var myNg = angular.module('mainApp', []);
myNg.directive('quberGrid', function () {
    return {
      restrict: 'EA',
      replace: true,//移除<quber-grid>标签
      templateUrl: 'tmp.html',
      link: function (sco, ele, attr) {
        //通知下属DOM,执行名为sendChildGridAttr的事件
        sco.$broadcast('sendChildGridAttr', attr);
      }
    };
});
myNg.directive('quberGridAttr', function () {
    return {
      restrict: 'A',
      link: function (sco, ele, attr) {
        sco.$on('sendChildGridAttr', function (event, data) {
          angular.forEach(data, function (val, key, obj) {
            if (key != '$attr' && key != '$$element') {
              //设置标签属性和值
              attr.$set(key, val);
            }
          });
        });
      }
    };
});
myNg.controller('mainController', function ($scope) { });

效果如下:

Angularjs使用directive自定义指令实现attribute继承的方法详解

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
jQuery Dialog 弹出层对话框插件
Aug 09 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
Apr 11 Javascript
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
Oct 26 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
Jun 06 Javascript
angularJs的ng-class切换class
Jun 23 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
vue超时计算的组件实例代码
Jul 09 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 Javascript
js从外部获取图片的实现方法
Aug 05 #Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 #Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 #Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 #Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 #Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 #Javascript
jQuery实现定位滚动条位置
Aug 05 #Javascript
You might like
php中日期加减法运算实现代码
2011/12/08 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
在Python中使用__slots__方法的详细教程
2015/04/28 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
深入了解Django中间件及其方法
2019/07/26 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
一套C#面试题
2013/10/09 面试题
节水倡议书范文
2014/04/15 职场文书
新手上路标语
2014/06/20 职场文书
销售助理岗位职责
2015/02/11 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL