我正在尝试在我的angular 6应用程序(angular的typescript版本)中嵌套指令。换句话说:在指令A中,我想应用另外两个指令B和C。
指令没有模板,所以我不确定这是否可能。而且,继承是不够的,因为我必须从多个指令继承。
这是可能的吗?还是我必须咬紧牙关,重复代码?
如果你想知道我为什么想要这样做,请继续阅读:
我有鼠标右键点击事件的指令,比如鼠标按下,鼠标释放。这些指令的输入是在这些事件上调用的函数。
我想创建一个右击拖动指令,以便输入是处理以下右击事件的函数:在鼠标按下时、在鼠标释放时,以及可选地在拖动时。
我知道如何从头开始构建这个指令,但如果我可以简单地使用现有的右键单击、鼠标按下等指令,它会更清晰。
然后,我可以创建更复杂的拖动指令,通过利用已经存在的右键拖动指令来处理dom操作。
发布于 2018-07-25 08:13:08
遗憾的是,目前看来这是不可能的。
这里当前有一个功能请求:
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': ' '
}
})
https://stackoverflow.com/questions/51508070
复制相似问题