угловой, как сбросить div scrollTop scrollheight - PullRequest
0 голосов
/ 21 декабря 2018

В моем угловом приложении у меня есть DIV, для которого я устанавливаю свойство [scrollTop] на основе содержимого, отображаемого в DIV.У меня есть угловая таблица данных внутри, когда значений нет, ее высота по умолчанию равна 36. Я хочу сбросить ее до высоты по умолчанию при нажатии кнопки, которая сбрасывает значения до нуля.

Я получаю ошибку:ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилось после его проверки.Предыдущее значение: «224».Текущее значение: «46».

<div #scrollMe [scrollTop]="scrollMe.scrollHeight"> 
  <data-table [selectColumn]="true" [items]="LST">
                                            </DATA-TABLE>
</DIV

1 Ответ

0 голосов
/ 21 декабря 2018

Используйте ChangeDetectorRef.Это дерево коллекции изменений, которое собирает все представления, которые необходимо проверить на наличие изменений.Вам нужно повторно визуализировать ваш вид, когда он изменился.И это делает трюк для вас.

помечает представления как «грязные», что означает, что они изменились и требуют повторного отображения.

ChangeDetectorRef

Импортировать его вВаш компонент:

import { ChangeDetectorRef, AfterContentChecked} from '@angular/core';

Инициализируйте его в конструкторе:

constructor(
  private cdref: ChangeDetectorRef) { }

И проверьте изменения в конце метода (связывание метода с кнопкой):

this.cdref.detectChanges();
...