我想问一下关于角2-5路由的问题.
我认为作为它的单页应用程序,当我使用路由时,我发现链接的行为与正常的应用程序不一样,导致页面没有重新加载。
当您单击页面中间的链接时,路由会更改DOM,但您将停留在页面的同一位置。(不作为正常应用程序转到顶部)
那这是正常的吗?还是这件事让我很怀念?
发布于 2018-01-29 08:00:24
这在角5中是正常的。但是,如果你想改变这种行为,你可以听路由变化,并滚动到顶部。
Guilherme Meireles provides code for doing this
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((e) => {
if (!(e instanceof NavigationEnd)) {
return;
}
window.scrollTo(0, 0)
});
}
}发布于 2018-01-29 08:08:26
这是“正常的”,因为正如您所说的,角是一个单页应用程序。
简化的角度路由允许您停留在同一个页面上,并更改浏览器的行为( document、window对象)以适应其行为。
这种行为改变了看待网页的“通常”方式,即1 URL =1服务器生成的页面。
在single的情况下,它不是在每次更改URL时从服务器请求一个页面,而是在启动时请求一个页面(index.html),并使用该URL更改页面的内容。
https://stackoverflow.com/questions/48496705
复制相似问题