Не существует директивы с «exportAs», установленным в «amgTooltip» - PullRequest
0 голосов
/ 25 января 2019

Я сделал директиву, которая наследуется от 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 по запросу, но в настоящее время у меня его нет.

Какую глупую ошибку я допустил?Спасибо

1 Ответ

0 голосов
/ 25 января 2019

Добавление amgTooltip к элементу mat-icon работает.

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