AngularJS Directive指令中transclude属性

2024-01-11 09:08

本文主要是介绍AngularJS Directive指令中transclude属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义指令对象时,可以不添加transclude属性,如果添加该属性,那么它的属性值是布尔类型的,默认值为false,表示不开启属性,如果设置为true值时,则开启了该属性;当开启了transclude属性后,就可以在模板中通过ng-transclude方式替换指令元素中的内容。假如指令元素中的内容如下

<div>hello!</div>

指令模板中的内容代码如下

<h3>I am template</h3>

指令元素中,调用ng-transclude指令后,原有指令元素中的内容则变成如下形式。

<div ng-transclude>hello!<h3>I am template</h3></div>

在添加transclude属性并开启成功后,可以将调用指令后的元素内容替换为指令中的模板内.
如果模板中的内容没有元素标签,而是纯文本内容,那么,在替换时,则会自动添加一个<span>标签,不仅仅是内容的替换,还可以通过变量来传递数据。

如下示例:设置指令对象中的transclude属性

  1. 功能描述
    在自定义指令的模板中,添加一个文本输入框,并通过ng-model绑定名为“text”的变量。另外,再添加一个<div>元素,并添加ng-transclude属性,通过该属性替换<div>元素的内容
  2. 代码如下:
<!DOCTYPE html>
<html ng-app="a8_3">
<head><title>设置指令对象中的transclude属性</title><script src="/node_modules/angular/angular.min.js"></script><style type="text/css">.frame {padding: 2px 8px;margin: 0px;font-size: 12px;width: 320px;background-color: #eee;}.tip {font-size: 9px;color: #666;margin: 3px 5px;}</style><script type="text/ng-template" id="tpl"><div class="frame"><input type="text" ng-model="text" /><div ng-transclude class="tip"></div></div></script>
</head>
<body><ts-tplscipt>{{text}}</ts-tplscipt>   <script type="text/javascript">var app = angular.module('a8_3', [])   .directive('tsTplscipt', function () {return {restrict: 'EAC',templateUrl: 'tpl',transclude: true};});</script>
</body>
</html>
  1. 程序运行如下
    在这里插入图片描述
  2. 源码分析
    定义了一个名为“tsTplscipt”的指令。添加“transclude”属性,并将它的值设置为true,表示开启该属性的功能。
    然后,在指令对应模板的元素中,通过添加“ng-transclude”属性的方式,调用“transclude”属性的功能,,该元素中的内容将会被指令元素原有内容所替代,效果见上图。
  3. TIP:
    指令中使用“transclude”属性的作用是为了保留指令元素中原有的内容。在通常情况下,使用自定义的指令元素后,原有内容都被指令中的模板替换,因此,为了保留这部分内容,引入了“transclude”属性,通过在模板中给元素添加“ng-transclude”属性,就可以获取指令元素中原有的内容。

这篇关于AngularJS Directive指令中transclude属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593849

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

AngularJS for login

web.xml <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/n

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

Python中的属性装饰器:解锁更优雅的编程之道

引言 在Python的世界里,装饰器是一个强大的工具,它允许我们以一种非侵入性的方式修改函数或方法的行为。而当我们谈论“属性装饰器”时,则是在探讨如何使用装饰器来增强类中属性的功能。这不仅让我们的代码更加简洁、易读,同时也提供了强大的功能扩展能力。本文将带你深入了解属性装饰器的核心概念,并通过一系列实例展示其在不同场景下的应用,从基础到进阶,再到实际项目的实战经验分享,帮助你解锁Python编程

mysql中导入txt文件数据的操作指令

1 表tt的格式:    CREATE TABLE `tt` (   `ind` int NOT NULL auto_increment,   `name` char(100) default NULL,   PRIMARY KEY  (`ind`)  )   2 文件d.txt的内容示例:  1,a  2,b  3,c

可选择的反思指令微调

论文:https://arxiv.org/pdf/2402.10110代码:GitHub - tianyi-lab/Reflection_Tuning: [ACL'24] Selective Reflection-Tuning: Student-Selected Data Recycling for LLM Instruction-Tuning机构:马里兰大学, Adobe Research领