Я сделал директиву, которая наследуется от MatTooltip от Angular Material.Я знаю, что это возможно из этого ТАКОГО вопроса .Однако, когда я пытаюсь использовать его, я получаю следующую ошибку:
There is no directive with "exportAs" set to "amgTooltip"
Это код в директиве, которая содержит конструктор, который вызывает конструктор super.Это не показано в коде ниже для краткости.
Как видите, объект конфигурации Директивы имеет свойство exportAs 'amgTooltip'.
@Directive({
selector: '[amgTooltip]',
exportAs: 'amgTooltip'
})
export class AmgTooltipDirective extends MatTooltip {
constructor(...) {...}
}
Эта директива зарегистрирована в классе модуля директив:
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 по запросу, но в настоящее время у меня его нет.
Какую глупую ошибку я допустил?Спасибо