首页 > 解决方案 > 如何通过元素注入器优雅地检查一个指令是否与另一个指令一起使用?

问题描述

我试图将我的指令限制为仅在同一元素上与 CdkDrag 协同工作。我想象能够检查构造函数是否以这种方式使用,如果没有 - 在控制台中提供描述性错误消息。

constructor(
  @Host() private cdkDrag: CdkDrag, // tried with @Self as well
) {
  if (!cdkDrag) {
    throw 'it can only be used together with cdkDrag directive';
  }
}

不幸的是,在这一切发生之前,编译器启动并抱怨缺少提供程序

ERROR Error: NG0201: No provider for n found in NodeInjector

并压制我的信息。我究竟做错了什么?

标签: angulardependency-injectionangular-directive

解决方案


推荐阅读