使用UI-Router和Angular 1.7,我需要更改状态并等待内容加载,然后滚动到页面底部。
// Class method
onCreate() {
this.post().then(response => {
this.$state.go('root.post.edit', { postId: response.data.id });
this.Alert.register('success');
})
.then(() => scrollToBottom()) // This happens too soon
.catch(e => this.handleError(e));
}
//scrollToBottom.js
const scrollToBottom () => {
const scrollContainer = document.querySelector('.app-page-content');
scrollContainer.scrollTop = scrollContainer.scrollHeight;
};
如果将scrollToBottom函数的内容包装在setTimeout(() => {...}, 600)
中,则它有时间加载并滚动到加载页面的底部。但是,如果没有它,则计算scrollContainer.scrollHeight
时页面就不会处于加载状态。
是否有办法等待内容加载到您要导航的路线上?
使用ui路由器解析。随数据一起返回promise,并且在控制器加载时将立即可用。无需超时