在命名透传槽中,如何“仅”透传元素的内容?
In a named transclude slot, how do I transclude *only* the element's contents?
我有一个基本的指令,我想使用透传。相关选项设置如下:
restrict: "E",
replace: true,
transclude: {
'toolbar': 'toolbarSlot'
},
scope: {
pageTitle: "@"
},
templateUrl: "path/to/my/template.html"
我的模板是:
<header class="page-header">
<h1 class="page-title heading">{{ pageTitle }}</h1>
<div class="page-header-toolbar toolbar" ng-transclude="toolbar">
<!-- "toolbar" transcluded content should go here -->
</div>
</header>
最后,当我使用指令时,我是这样使用的:
<my-custom-page-header-directive page-title="Title">
<toolbar-slot>
<button>Button</button>
<button>Another button</button>
</toolbar-slot>
</my-custom-page-header-directive>
问题是,在DOM中,它最终是这样的,一个无关的toolbar-slot
元素混入了被包含的内容:
<header class="page-header">
<h1 class="page-title heading">Title</h1>
<div class="page-header-toolbar toolbar">
<toolbar-slot>
<button>Button</button>
<button>Another button</button>
</toolbar-slot>
</div>
</header>
是否有一种方法(使用ngTransclude
)仅跨出槽元素的内容 ?
看起来答案是不,目前还没有办法做到这一点
在Angular.js存储库中有一个公开的问题表明,对于以这种方式实现使用ngTransclude
的能力存在疑虑:
我不赞成在槽传递中添加替换功能。它将引入与我们使用普通"replace"和transclude: element相同的问题。
但是,显然,"如果你真的需要的话,你可以手动完成"。
相关文章:
- 如何设置html元素填充的动画
- 动态HTML元素-如何将表单提交到php
- 在JointJS中,元素如何访问position、inPorts和outPorts
- 元素如何仅在滚动时固定在页面顶部
- jQuery通过向上/向下按钮滚动到下一个元素 - 如何为手动滚动添加处理,否则会混淆这一点
- Android 浏览器触摸事件停止显示正在更新,包括画布/元素 - 如何变通
- 引导 3 - 切换 - 2 个按钮,2 个元素 - 如何显示/隐藏
- 使用 .click 函数在表格中显示元素.如何区分使用循环填充的表中的元素
- 将鼠标悬停在元素上动画化下一个元素-如何删除内联JS
- jquery自动完成多元素如何追加
- 嵌套的子指令根元素如何在父级的同一级别工作's指令根元素
- javascript/jquery-解析radio/checkbox的所有元素-如何获取每个元素的文本值
- json文件中的无限嵌套元素-如何获得特定的元素
- jQuery.remove(),分离DOM元素,但我仍然可以从代码访问元素.如何避免泄漏
- 如何阻止一个ember动作触发它的子元素/如何访问动作中的事件
- D3js重叠元素:如何“穿过”点击“下”键;元素
- 右键单击d3.js元素:如何防止浏览器上下文菜单出现
- 在一次“潜水”中元素如何确定href和onClick调用的优先级
- 第N个子css属性正在计算display属性设置为none的html元素.如何更改
- 在哪里可以找到一些关于新的canvas HTML元素如何工作的好信息