У меня есть этот компонент, который имеет «страницу» в основном div, называемую «# results-page», которая отображается только в том случае, если есть результаты для отображения.Выполнить метод после отображения div
Самый простой способ описать, как это работает, просто чтобы показать вам код:
FIND-page.component.ts:
import { Component } from '@angular/core';
import { NavbarComponent } from '../shared/navbar.component';
import { FindFormComponent } from '../find-page/find-form.component';
@Component({
selector: 'find-page',
templateUrl: 'app/find-page/find-page.component.html',
styleUrls: ['app/find-page/find-page.component.css' ],
directives: [ FindFormComponent ]
})
export class FindPageComponent {
showResults = false;
onResultsRecieved(recieved: boolean) {
if (recieved) {
this.showResults = true;
ScrollToAnchor.goToTargetBottom("#results-page");
}else {
this.showResults = false;
}
}
}
находкой-page.component.html:
<div id="find-page">
<find-form (onResultsRecieved)="onResultsRecieved($event)"></find-form>
</div>
<div *ngIf="showResults" id="results-page">
</div>
oResultsRecieved()
получает триггер события, когда результаты приходят. Затем мы устанавливаем свойство showResults
в значение true, что приводит к отображению «# results-page», и Вскоре, пока он отобразится, я хочу прокрутить до конца этого div. Я отлично справляюсь с scrollToAnchor.goToTargetBottom()
. Тем не менее, scrollToAnchor.goToTargetBottom()
запускается слишком рано (до отображения «# results-page»), чтобы он не прокручивался до нижней части страницы «# results-page».
Как заставить scrollToAnchor.goToTargetBottom()
выполнить, только после отображения «# results-page»?
Это что-то, что вы ищете https://angular.io/docs/ts/latest/api/core/index/AfterViewChecked-class.html? –
@HarryNinh Это вызывает у меня бесконечный цикл работы функции 'ngAfterViewChecked()' – BeniaminoBaggins