Angular UI-Router-等待内容加载

问题描述 投票:0回答:1

使用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时页面就不会处于加载状态。

是否有办法等待内容加载到您要导航的路线上?

javascript angularjs dom routes angular-ui-router
1个回答
0
投票

使用ui路由器解析。随数据一起返回promise,并且在控制器加载时将立即可用。无需超时

https://github.com/angular-ui/ui-router/wiki#resolve

© www.soinside.com 2019 - 2024. All rights reserved.