Angular 6嵌套指令

时间:2018-07-24 21:55:20

标签: javascript angular typescript

我正在尝试将指令嵌套在我的angular 6应用程序(angular的打字稿版本)中。换句话说:从指令 A 中我想应用另外两个指令 B C

指令没有模板,因此我不确定这是否可行。另外,继承还不够,因为我必须从多个指令中继承。

这是可能的还是我必须咬一口子并有重复的代码?


如果您想知道为什么我要这样做,请继续阅读:

我对右键单击事件(例如鼠标按下,鼠标按下)有指令。这些指令的输入是在这些事件上调用的函数。

我想创建一个右键单击拖动指令,以使输入是处理以下右键单击事件的函数:按下鼠标,按下鼠标并可选地拖动。

我知道如何从头开始构建指令,但是如果我可以简单地使用现有指令进行鼠标右键单击等操作,那将会更干净。

然后我可以通过利用已经存在的right-drag指令来创建处理dom操作的更复杂的drag指令。

1 个答案:

答案 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': ' ' 
    }
})