Дождитесь обновления углового интерфейса перед позиционированием элемента - PullRequest
0 голосов
/ 06 марта 2019

Я пишу свою собственную логику всплывающей подсказки, которая отлично работает, за исключением одной раздражающей ошибки. При нажатии на элемент привязки я читаю идентификатор элемента, извлекаю некоторый текст из локального массива и показываю этот текст во всплывающей подсказке. В зависимости от длины текста высота подсказок будет меняться.

После этого я выравниваю подсказку по элементу, на который щелкнули, используя getBoundingClientRect() в контейнере всплывающей подсказки и устанавливая значение 'top' соответственно с setStyle().

К сожалению, вычисленная высота неверна, когда длина текста всплывающей подсказки изменяется при getBoundingClientRect(), по-видимому, работает до того, как высчитывается высота нового контейнера.

Есть ли способ дождаться обновления пользовательского интерфейса, прежде чем продолжить с позиционированием всплывающей подсказки? Я пытался использовать setTimeout(), чтобы дождаться обновления, но это очень наглядно и, конечно, не очень приятно смотреть.

setTimeout(() => {
  this.ngZone.run(() => {
    this.updateTooltipPosition();
  });
}, 200);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...