Использование 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
.
Можно ли дождаться загрузки содержимого по маршруту, по которому вы идете?