码迷,mamicode.com
首页 > 其他好文 > 详细

关于angular跳转路由之后不能自动回到顶部的解决方法

时间:2019-09-16 14:39:35      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:rom   参数   第一个   out   eof   angular2   路由   top   自动   

Question: angular2 scroll top on router change

当我们在第一个路由滑动到底部当我们点击导航跳转到另一个路由时页面没有回到顶部而是保持上一个路由的滚动位置,基本的解决办法有两种。

第一种解决方法是在组建的ngOnIinit()中进行调换路由后的重置

import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';

@Component({
    selector: 'my-app',
    template: '<ng-content></ng-content>',
})
export class MyAppComponent implements OnInit {
    constructor(private router: Router) { }

    ngOnInit() {
        this.router.events.subscribe((evt) => {
            if (!(evt instanceof NavigationEnd)) {
                return;
            }
            window.scrollTo(0, 0)
        });
    }
}

第二种解决方法是在import中对路由进行注入的时候设置scrollPositionRestoration参数(angular6之后)。

RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})

关于angular跳转路由之后不能自动回到顶部的解决方法

标签:rom   参数   第一个   out   eof   angular2   路由   top   自动   

原文地址:https://www.cnblogs.com/yuanchao-blog/p/11526685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!