如何让angular指令包含&替换另一个指令
How to get an angular directive to include & replace another directive?
我有一个AngularJS指令,directiveFoo
由一个属性实例化:
<div directiveFoo></div>
我希望我的directiveFoo
总是实例化另一个指令,例如模板是:
<div directiveBar="123"></div>
我的问题是——这是否可能在不创建所有浪费节点的情况下做到?我想将replace
添加到我的指令中,但随后它吹走了directiveFoo
我最终想要的是:
<div directiveFoo directiveBar="123"></div>
与两个控制器连接。
这是一个简化的例子。我想阻止:
<div directiveA>
<div directiveB>
<div directiveC="123">
<div directiveD></div>
</div>
</div>
</div>
在我不需要所有嵌套DOM节点的情况下
然后直接吹走
这是不应该的。替换过程将所有的属性/类从旧元素迁移到新元素。——指令文档
因为属性是迁移的,所以directive-foo
应该显示在生成的HTML中。
app.directive('directiveFoo', function() {
return {
template: '<div directive-bar="123">bar</div>',
replace: true,
}
});
上面的指令产生了以下HTML(在Chrome中测试):
<div directive-bar="123" directive-foo>bar</div>
小提琴。
在小提琴中,我还为每个指令创建了一个控制器(因为你提到你想要的),我显示directive-bar
可以访问directive-foo
的控制器。
(我把bar
作为文本放在模板中,只是为了方便右键单击它并选择"Inspect element")
相关文章:
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 无法用tr替换表中的指令
- 当指令模板的各个部分存在各自的交叉内容时,替换它们
- AngularJS指令模板ng重复有趣的替换
- AngularJS SVG 指令,不推荐使用替换
- 如何实现 Angular 指令来替换元素,但仅限于某些情况
- 替换指令中的值而不替换整个指令
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- 正则表达式在指令中替换为 html 标记
- 控制 AngularJS 如何替换 ngInclude 或自定义指令
- 如何使用带有替换的模板覆盖/补充指令中的ng类:true
- 为什么“替换:真”在 AngularJS 指令中被弃用
- 用于替换用户输入中的字符的角度指令
- 如何替换Angular指令中不推荐使用的替换属性
- 替换“;templateUrl”:路径带有“;模板”:使用gump的角度指令的内容
- 用于替换文本的 Angularjs 指令
- 在指令's链接中替换angular元素html
- 如何让angular指令包含&替换另一个指令
- AngularJS指令:将属性值直接替换到模板中
- 如何阻止angular在自定义指令中将属性传递给被替换的元素