angular 2 个新路由器:浏览器的后退和前进按钮无法正常工作
angular 2 new router: Back- and Forward-Button of Browser not working correctly
http://plnkr.co/edit/UHeuW7QIFhHnHVT8itoj?p=preview
这是 google 提供的用于演示相对导航的插件:
export class CrisisListComponent implements OnActivate {
crises: Crisis[];
private currSegment: RouteSegment;
private selectedId: number;
constructor(
private service: CrisisService,
private router: Router) { }
isSelected(crisis: Crisis) { return crisis.id === this.selectedId; }
routerOnActivate(curr: RouteSegment, prev: RouteSegment, currTree: RouteTree) {
this.currSegment = curr;
this.selectedId = +currTree.parent(curr).getParam('id');
this.service.getCrises().then(crises => this.crises = crises);
}
onSelect(crisis: Crisis) {
// Absolute link
// this.router.navigate([`/crisis-center`, crisis.id]);
// Relative link
this.router.navigate([`./${crisis.id}`], this.currSegment);
}
}
现在,在我的 Chrome 版本中,单击后退按钮后,浏览器前进按钮将无法正常工作。
重现错误:
- 单击列表中的一项
- 单击后退按钮
- --> 现在前进按钮被禁用了
预计:将启用前进按钮并转到所点击项目的详细视图
这是一个错误还是我遗漏了什么?
这是因为当使用服务器呈现的内容时,此导航会重新请求来自服务器的内容或可能会重新显示缓存的内容。使用客户端框架时,必须模拟此导航,因为导航实际上并没有发生,而是存储状态历史并将其传递给应用程序以达到相同的效果。
来源:http://www.captaincodeman.com/2016/04/02/angular2-new-component-router-review/
这是 @angular/router
https://github.com/angular/angular/issues/9088
的一个已知问题
此路由器将再次更换。新路由器正在开发中,但可能很快就会可用。
http://plnkr.co/edit/UHeuW7QIFhHnHVT8itoj?p=preview
这是 google 提供的用于演示相对导航的插件:
export class CrisisListComponent implements OnActivate {
crises: Crisis[];
private currSegment: RouteSegment;
private selectedId: number;
constructor(
private service: CrisisService,
private router: Router) { }
isSelected(crisis: Crisis) { return crisis.id === this.selectedId; }
routerOnActivate(curr: RouteSegment, prev: RouteSegment, currTree: RouteTree) {
this.currSegment = curr;
this.selectedId = +currTree.parent(curr).getParam('id');
this.service.getCrises().then(crises => this.crises = crises);
}
onSelect(crisis: Crisis) {
// Absolute link
// this.router.navigate([`/crisis-center`, crisis.id]);
// Relative link
this.router.navigate([`./${crisis.id}`], this.currSegment);
}
}
现在,在我的 Chrome 版本中,单击后退按钮后,浏览器前进按钮将无法正常工作。
重现错误:
- 单击列表中的一项
- 单击后退按钮
- --> 现在前进按钮被禁用了
预计:将启用前进按钮并转到所点击项目的详细视图
这是一个错误还是我遗漏了什么?
这是因为当使用服务器呈现的内容时,此导航会重新请求来自服务器的内容或可能会重新显示缓存的内容。使用客户端框架时,必须模拟此导航,因为导航实际上并没有发生,而是存储状态历史并将其传递给应用程序以达到相同的效果。
来源:http://www.captaincodeman.com/2016/04/02/angular2-new-component-router-review/
这是 @angular/router
https://github.com/angular/angular/issues/9088
此路由器将再次更换。新路由器正在开发中,但可能很快就会可用。