Не могу сделать многострочный matTooltip, всегда получая однострочный - PullRequest
0 голосов
/ 28 марта 2020

Используя [matTooltip] = "myMultiLineStringGenerator ()" в сочетании с [matTooltipClass] = "'my-tooltip'", я ожидал дать мне многострочные всплывающие подсказки, независимо от того, получаю ли я одну всплывающую подсказку, и у меня нет контроля, когда строки заканчиваются и переходят к следующей строке.

Шаги для воспроизведения

HTML часть

<p  [matTooltipClass]="'my-tooltip'"
    [matTooltip]="getTooltopScript(nearestStations)">
            Hello World!
</p>

CSS часть:

.mat-tooltip {
    white-space: pre-line;
}

::ng-deep .mat-tooltip {
   white-space: pre-line;
}

TypeScript

getTooltopScript(ns: any[]]){
      let part1 =  ns[0]['stationName'] ;
      let part2 = ns[0]['regionName'];
      return `${part1}.\r\n\
       ${part2}.`;
}

Я прочитал много других стековых потоков, и все они заканчиваются использованием пробелов: предварительная строка в css и \r\n в сценарии js \ type для создания строки , Я не знаю, что еще я должен сделать, чтобы это работало

Пожалуйста, помогите:)

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

::ng-deep .mat-tooltip .cdk-overlay-container, ::ng-deep .mat-tooltip .cdk- 
    global-overlay-wrapper {
    white-space: pre-line;
}

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Если у вас есть текст из файла ts, найдите решение ниже:

В .ts файле:

getTooltopScript(){
  return 'Multiline Tooltip \n This is second line';
}

В HTML:

<p #tooltip2="matTooltip" [matTooltip]="getTooltopScript()">Hello World!</p>

В css файле:

::ng-deep .cdk-overlay-container, .cdk-global-overlay-wrapper {
  white-space: pre-line;
}

Чтобы правильно видеть подсказку, нам нужно добавить импорт стилей материала в глобальную таблицу стилей (то есть стиль. css):

В стиле. css:

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

Рабочий пример приведен ниже:

https://angular-sf-tooltip-issue-fix.stackblitz.io

https://stackblitz.com/edit/angular-sf-tooltip-issue-fix?file=src%2Fapp%2Fapp.module.ts

0 голосов
/ 28 марта 2020

Чтобы это работало, нам нужно переопределить стиль для .cdk-overlay-container, .cdk-global-overlay-wrapper :

::ng-deep .cdk-overlay-container, .cdk-global-overlay-wrapper {
  white-space: pre-line;
}

В HTML:

<p matTooltip="Multiline Tooltip &#13; This is second line">Hello World!</p>

Надеюсь, это поможет вам. Ниже приведен рабочий пример:

https://angular-sf-tooltip-issue-fix.stackblitz.io

https://stackblitz.com/edit/angular-sf-tooltip-issue-fix?file=src%2Fapp%2Fapp.module.ts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...