我认为这是我用angularjs指令最难理解的概念之一。
http://docs.angularjs.org/guide/directive中的文档说:
transclude-
编译元素的内容并将其提供给指令。通常与ngTransclude一起使用。包含的优点是链接功能接收一个预先绑定到正确作用域的包含功能。在典型的设置中,小部件创建隔离范围,但包含不是子项,而是隔离范围的同级。这使得小部件可以具有私有状态,并且可以将包含项绑定到父(预隔离)范围。
- true-排除指令的内容。
- ‘element’-包括整个元素,包括以较低优先级定义的所有指令。
它说transclude
通常与一起使用ngTransclude
。但是ngTransclude文档中的示例根本不使用ngTransclude
指令。
我想要一些很好的例子来帮助我理解这一点。我们为什么需要它?它能解决什么?如何使用它?
考虑在一个元素中一个名为 myDirective 的指令,该元素正在封装其他内容,比如说:
<div my-directive>
<button>some button</button>
<a href="#">and a link</a>
</div>
如果 myDirective 使用的是模板,则会看到的内容<div my-directive>
将被指令模板替换。因此具有:
app.directive('myDirective', function(){
return{
template: '<div class="something"> This is my directive content</div>'
}
});
将导致此渲染:
<div class="something"> This is my directive content</div>
请注意,原始元素的内容<div my-directive>
将丢失 (或更确切地说, 将被 替换)。因此,与这些伙伴说再见:
<button>some button</button>
<a href="#">and a link</a>
那么,如果您想保留您的<button>...
和<a href>...
DOM,该怎么办?您将需要一种称为“包含”的东西。这个概念非常简单:
将内容从一个地方包含到另一个地方 。因此,现在您的指令将如下所示:
app.directive('myDirective', function(){
return{
transclude: true,
template: '<div class="something"> This is my directive content</div> <ng-transclude></ng-transclude>'
}
});
这将呈现:
<div class="something"> This is my directive content
<button>some button</button>
<a href="#">and a link</a>
</div>.
总之,当您使用指令时要保留元素的内容时,基本上可以使用transclude。
我的代码示例在这里。你也可以受益于看这个。
问题内容: 我想在内容更改时创建具有自定义行为的列表。我尝试为此创建一个指令,但是我对如何将ng-transclude与ng- repeat指令结合起来感到迷茫。有人可以让我走上正轨吗? HTML: Javascript: 我已经在这里工作了一部分 编辑: 条件: 该项目的模板必须在视图中定义,而不是在指令中定义,并且必须有权访问子作用域中的项目属性。理想情况下,我想像在ng-repeat指令中那
创建自定义指令 第一步,创建一个自定义命令类文件,新建application/common/command/Hello.php <?php namespace app\common\command; use think\console\Command; use think\console\Input; use think\console\input\Argument; use think\con
自定义指令可以使用 macro 指令来定义, 这是模板设计者所关心的内容。 Java程序员若不想在模板中实现定义指令,而是在Java语言中实现指令的定义, 这时可以使用 freemarker.template.TemplateDirectiveModel 类来扩展 (请参考 后续章节)。 基本内容 宏是有一个变量名的模板片段。可以在模板中使用宏作为自定义指令, 这样就能进行重复性的工作。例如,创建
本文向大家介绍Vue的土著指令和自定义指令实例详解,包括了Vue的土著指令和自定义指令实例详解的使用技巧和注意事项,需要的朋友参考一下 1.土著指令 当我开始学习Vue的时候,看官网的时候看到了“指令”两个字。我愣住了,what?指令是啥啊?后来继续往下看,像这种什么“v-for”“v-show”“v-if”都叫做指令。等到后来Vue玩的差不多了,开始写项目的时候发现,常见的指令也就那么几个,
问题内容: 以下是我的“ Dockerfile”的内容 在此文件中,我期望“ VOLUME。/ usr / src / app”指令将主机上当前工作目录的内容安装在要安装在容器的/ usr / src / app文件夹中的主机中。 请让我知道这是正确的方法吗? 问题答案: 官方Docker教程说: 数据卷是一个或多个容器中的一个特别指定的目录,绕过联合文件系统。数据量为持久性数据或共享数据提供了几
主要内容:实例,实例,钩子,实例,实例除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令。 下面我们注册一个全局指令 v-focus, 该指令的功能是在页面加载时,元素获得焦点: 实例 <div id="app"> <p>页面载入时,input 元素自动获取焦点:</p> <input v-focus> </div> <script> // 注册一个全局自定义指令 v-focus Vue.d