我正在尝试将指令嵌套在我的angular 6应用程序(angular的打字稿版本)中。换句话说:从指令 A 中我想应用另外两个指令 B 和 C 。
指令没有模板,因此我不确定这是否可行。另外,继承还不够,因为我必须从多个指令中继承。
这是可能的还是我必须咬一口子并有重复的代码?
如果您想知道为什么我要这样做,请继续阅读:
我对右键单击事件(例如鼠标按下,鼠标按下)有指令。这些指令的输入是在这些事件上调用的函数。
我想创建一个右键单击拖动指令,以使输入是处理以下右键单击事件的函数:按下鼠标,按下鼠标并可选地拖动。
我知道如何从头开始构建指令,但是如果我可以简单地使用现有指令进行鼠标右键单击等操作,那将会更干净。
然后我可以通过利用已经存在的right-drag指令来创建处理dom操作的更复杂的drag指令。
答案 0 :(得分:0)
遗憾的是,目前看来这不可能。
此处当前有功能请求:
https://github.com/angular/angular/issues/8785
如果您希望看到该功能的实施,请竖起大拇指,以引起更多关注!
另请参阅:Angular2 - Bind Custom Directive To Host
可用于修改宿主项目的最接近的方法是在指令注释中使用host参数。这会将类,事件等附加到主机组件。不幸的是,它不支持附加自定义指令。
希望在将来,他们将扩展主机功能以支持以下功能:
@Directive({
selector: '[custom-directive-a]',
host: {
// Currently not supported
// but should append custom directives to host component
'custom-directive-b': ' ',
'custom-directive-c': ' '
}
})