详解angularJS自定义指令间的相互交互

发布时间 - 2026-01-11 02:12:03    点击率:

AngularJS 自定义指令

transclude:当元素标签需要嵌套时使用,与ng-transclude配合使用。默认值为false不能使用嵌套,true为可以使用嵌套。在哪个标签上使用ng-transclude就在哪个标签内进行嵌套。

代码示例:(将hello、hi标签进行替换同时span标签嵌套div内)

<script type="text/javascript">
  var m = angular.module('myApp',[]);
  m.directive('hello',function(){
    return{
      restrict:'E',
      replace:true,
      transclude:true,
      template:'<div>hello angular<h1 ng-transclude></h1></div>'
    };
  });
  m.directive('hi',function(){
    return{
      restrict:'E',
      replace:true,
      template:'<span>hi angular</span>'
    };
  });
  m.controller('Aaa',['$scope',function($scope){
    $scope.name='hello';
  }]);
  </script>

<body ng-controller="Aaa">
  <hello>
    <hi></hi>
  </hello>
</body>

页面结果展示:

在自定义指令当中controller与link的区别:

link是指DOM操作,操作也是针对当前标签

controller是多调用性的数据共享,指令与指令间进行交互时也可以设置一些方法数据,在其他标签中也可以调用

require:从外部引入数据,参数为被引入的指令,被引入的指令需要在引入指令的身上。

》^:是指被引入的指令是引入指令的父级

》?:兼容错误

代码示例:

  <script type="text/javascript">
  var m = angular.module('myApp',[]);
  m.directive('hello',function(){
    return{
      restrict:'E',
      replace:true,
      transclude:true,
      controller:function($scope){
        //$scope.name='miaov';只能在该标签中使用
        this.name = 'miaov';//可以在其他标签中调用
      },
      template:'<div>hello angular<h1 ng-transclude></h1></div>'
    };
  });
  m.directive('hi',function(){
    return{
      restrict:'E',
      replace:true,
      require:'?^hello',//从外部引入指令,参数为被引入的标签
      link:function($scope,element,attr,reController){
        console.log(reController.name);
      },
      template:'<span>hi angular</span>'
    };
  });
  m.controller('Aaa',['$scope',function($scope){
    $scope.name='hello';
  }]);
  </script>

<body ng-controller="Aaa">
  <hello>
    <hi></hi>
  </hello>
</body>

页面结果展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angular  # 指令交互  # angularJS自定义指令交互  # 深入讲解AngularJS中的自定义指令的使用  # AngularJS创建自定义指令的方法详解  # AngularJS优雅的自定义指令  # AngularJS使用自定义指令替代ng-repeat的方法  # AngularJS 自定义指令详解及实例代码  # AngularJS自定义指令实现面包屑功能完整实例  # AngularJS实现自定义指令与控制器数据交互的方法示例  # AngularJS 自定义指令详解及示例代码  # AngularJS自定义指令之复制指令实现方法  # AngularJS自定义指令详解(有分页插件代码)  # AngularJS实现自定义指令及指令配置项的方法  # 是指  # 自定义  # 就在  # 可以使用  # 中也  # 值为  # 大家多多  # 只能在  # script  # type  # lt  # brush  # js  # javascript  # text  # gt  # var  # false  # true 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用腾讯建站主机快速创建免费网站?  Laravel如何升级到最新版本?(升级指南和步骤)  如何自定义建站之星网站的导航菜单样式?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在阿里云部署织梦网站?  JavaScript常见的五种数组去重的方式  浅述节点的创建及常见功能的实现  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  网站图片在线制作软件,怎么在图片上做链接?  EditPlus中的正则表达式 实战(1)  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  lovemo网页版地址 lovemo官网手机登录  非常酷的网站设计制作软件,酷培ai教育官方网站?  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何在IIS中配置站点IP、端口及主机头?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  如何构建满足综合性能需求的优质建站方案?  打造顶配客厅影院,这份100寸电视推荐名单请查收  如何在阿里云完成域名注册与建站?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  个人摄影网站制作流程,摄影爱好者都去什么网站?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  昵图网官方站入口 昵图网素材图库官网入口  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  文字头像制作网站推荐软件,醒图能自动配文字吗?  新三国志曹操传主线渭水交兵攻略  如何在阿里云通过域名搭建网站?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  黑客如何利用漏洞与弱口令入侵网站服务器?  用yum安装MySQLdb模块的步骤方法  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  C++用Dijkstra(迪杰斯特拉)算法求最短路径  韩国服务器如何优化跨境访问实现高效连接?  香港服务器WordPress建站指南:SEO优化与高效部署策略  深入理解Android中的xmlns:tools属性  *服务器网站为何频现安全漏洞?  怎么用AI帮你设计一套个性化的手机App图标?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  个人网站制作流程图片大全,个人网站如何注销?  Laravel如何使用模型观察者?(Observer代码示例)  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  如何快速生成专业多端适配建站电话?