Angular 将元素添加到DOM-6后,滚动到页面底部

Angular 将元素添加到DOM-6后,滚动到页面底部,angular,Angular,我有一个表单,在这个表单中,我向数组添加对象,然后向用户提供所创建对象的预览 我使用*ngFor循环数组,每个元素都添加到屏幕底部。我的目标是在添加每个元素后,自动滚动到页面底部 目前我正在使用setTimeOut函数,但我想知道有没有更好的方法 this.createdAppointments.push(appointmentFormValues); setTimeout(() => { window.scrollTo(0, document.body.scroll

我有一个表单,在这个表单中,我向数组添加对象,然后向用户提供所创建对象的预览

我使用*ngFor循环数组,每个元素都添加到屏幕底部。我的目标是在添加每个元素后,自动滚动到页面底部

目前我正在使用setTimeOut函数,但我想知道有没有更好的方法

this.createdAppointments.push(appointmentFormValues);

    setTimeout(() => {
      window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);
    }, 1);

您可以对新添加的项目调用scrollIntoView方法,请参见

为什么需要超时?您可以创建某种“scrollOnAppearance”指令,该指令实现了此逻辑,以强制执行单一责任和可恢复性原则。@bryan60我创建了一个指令,但页面不会滚动到底部<代码>从“@angular/core”导入{Directive}@指令({//tslint:禁用下一行:指令选择器:'[AutoScrollDown]'})导出类AutoScrollDownDirective{constructor(){window.scrollTo(0,document.body.scrollHeight | | document.documentElement.scrollHeight);}在afterViewInit中执行,而不是在Constructor中执行,或者添加几毫秒的延迟太棒了!谢谢@bryan60可能的副本