没有 "exportAs" 设置为 "amgTooltip" 的指令

There is no directive with "exportAs" set to "amgTooltip"

我创建了一个指令,该指令继承自 Angular Material 的 MatTooltip。我从 知道这是可能的。 但是,当我尝试使用它时,出现以下错误:

There is no directive with "exportAs" set to "amgTooltip"

这是指令中的代码,其中包含一个调用 super 上的构造函数的构造函数。为了简洁起见,它没有在下面的代码中显示。

如您所见,指令配置对象具有 'amgTooltip' 的 exportAs 属性。

@Directive({
  selector: '[amgTooltip]',
  exportAs: 'amgTooltip'
})
export class AmgTooltipDirective extends MatTooltip {

    constructor(...) {...}

}

此指令已注册到指令模块 class:

import {NgModule} from '@angular/core';
import {AmgTooltipDirective} from './amg-tooltip';

@NgModule({
  imports: [],
  declarations: [AmgTooltipDirective],
  exports: [AmgTooltipDirective]
})
export class DirectivesModule {

}

此模块被我们在 imports 部分的功能模块引用:

@NgModule({
  declarations: [...],
  imports: [
    ...,
    DirectivesModule
  ],
  bootstrap: [...]
})

从那里,我们引用 amgTooltip 的方式与我们引用 matTooltip:

的方式完全相同
<mat-icon 
    #icoTooltip="amgTooltip" 
    matTooltip="Tooltip Text"
    matTooltipPosition="after">
        icon_name
</mat-icon>

但是,这是我们收到错误的地方,无法继续。如果需要,我可以尝试创建一个 Plunkr,但我目前没有。

我犯了什么愚蠢的错误?谢谢

amgTooltip 添加到 mat-icon 元素有效。

<mat-icon 
    amgTooltip
    #icoTooltip="amgTooltip" 
    matTooltip="Tooltip Text"
    matTooltipPosition="after">
        icon_name
</mat-icon>