如何知道前端何时完成渲染?
我的意思是,在你的后端有一个数组,在你的视图上有一个ngFor。
我怎么知道它什么时候结束呢?我想知道,因为我需要在它完成时向下滚动,而目前它在渲染之前会滚动。
下面是演示这个问题的一些代码:https://gist.github.com/mtnoronha/e78eba6b610b71f1e72424ed21722be1
谢谢
发布于 2017-05-03 03:00:21
创建一个新的promise,以便在它加载完消息后进行处理,因此您需要滚动到底部,在您的情况下,使用它如下所示:
你的.TS文件
appendRows(newData){
if(!newData || newData.length == 0)
return;
this.myNewPromise().then(res =>{
if(res){
this.content.scrollToBottom(0);
}
})
}
myNewPromise = (): Promise<boolean> =>{
return new Promise<boolean>(res){
if(this.messages){
let newArray = this.messages.concat(newData);
this.messages = newArray;
res(true);
}else{
this.messages = newData;
res(false);
}
}
}所以你的scrollToBottom只有在myNewPromise结束的时候才会触发。在您的承诺中,您将解析它并返回一个布尔值,因此如果有新消息,您将调用scrollToBottom。
如果您需要以任何一种方式调用它,只需在两个res中都传递一个true,或者在返回myNewPromise时删除if (res)。
希望能有所帮助。
https://stackoverflow.com/questions/43743552
复制相似问题