Проблема с подсказкой, MatTooltip не работает в Angular

Я пытаюсь вставить всплывающую подсказку с уведомлениями на страницу панели инструментов, но эта подсказка не работает. Я очень новичок в Angular, поэтому любые предложения по этому поводу будут высоко оценены.

module.ts

.. import {MatTooltipModule} из '@angular/material'; ..

@NgModule({
..
MatTooltipModule
..})

component.html

    <div class="notifications">
        <i class="fa fa-bell fa-2x" aria-hiden="true" matTooltip="Tooltip!"></i>
    </div>

Ответы

Ответ 1

Чтобы использовать подсказку angular материала, вам потребуется:

  1. Импортируйте BrowserAnimationsModule и MatTooltipModule:

app.module.ts

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatTooltipModule } from '@angular/material/tooltip';

@NgModule({
  imports: [
    BrowserAnimationsModule,
    MatTooltipModule,
    // ...
  1. Добавьте всплывающую подсказку к своему компоненту

test.component.html

<div matTooltip="Tooltip!">Hover me</div>
  1. P.S Если вы еще не установили и не импортировали HummerJ, вам может понадобиться (материал использует его для анимации и сенсорных жестов):
    npm i -S hammerjs
    npm i -D @types/hammerjs

И в вашем app.module.js импортируйте hammerjs:

import 'hammerjs'; 

Для просмотра полного рабочего примера см.: https://stackblitz.com/angular/keqjqmxbrbg

Обновление

Я обнаружил утечку памяти в моем приложении из-за широкого использования mat-tooltip (в цикле). Эту утечку памяти можно устранить, удалив HummerJS.
Для получения дополнительной информации и других возможных решений (вместо удаления HummerJS) см.:https://github.com/angular/material2/issues/4499

Ответ 2

У меня была похожая проблема. Это было исправлено, когда я добавил тему материала CSS.

Проверьте консоль, чтобы узнать, есть ли у нее предупреждение. Попробуйте добавить тему CSS в родительский файл.

Ответ 3

Если вы видите ошибку, указывающую на то, что тема не найдена для материала, добавьте одну из тем материала, как эта, в первую строку вашего основного файла CSS;

@import '@angular/material/prebuilt-themes/deeppurple-amber.css'; 

Ответ 4

Посмотрите, как это выглядит так: если у вас есть отдельный модуль для отложенной загрузки или чего-то еще, вы должны повторно импортировать MatTooltipModule там.

Ответ 5

Проблема в инструкции импорта Здесь правильный путь,

import {MatTooltipModule} из '@angular/material/tooltip';