Angular2:导航到路由并弹出回 pushState 堆栈的根
Angular2: navigate to a route and pop back to the root of the pushState stack
使用 Angular2 路由,如何导航到某个路由,同时让 pushState
一直弹出回到根目录?
我查看了 Router
的 router.navigate([...])
方法,但没有找到它。
例如,在 Dart 的 route_hierarchical
Router
中,我可以做
router.go('login',{},replace: true,startingFrom:router.root);
在 Angular2 在其路由器中提供此功能之前,这里有一个临时解决方法:
abstract class Hist {
static int _initialLength;
// Call this ASAP when app starts.
static void setAsInitialLength() {
_initialLength = window.history.length;
}
static Future goBackToRoot() async {
Completer completer = new Completer();
window.history.go(-(window.history.length-_initialLength));
Timer.run((){
completer.complete();
});
return completer.future;
}
}
那我就可以这样用了:
await Hist.goBackToRoot();
router.navigate(['/Main',{}]);
使用 Angular2 路由,如何导航到某个路由,同时让 pushState
一直弹出回到根目录?
我查看了 Router
的 router.navigate([...])
方法,但没有找到它。
例如,在 Dart 的 route_hierarchical
Router
中,我可以做 router.go('login',{},replace: true,startingFrom:router.root);
在 Angular2 在其路由器中提供此功能之前,这里有一个临时解决方法:
abstract class Hist {
static int _initialLength;
// Call this ASAP when app starts.
static void setAsInitialLength() {
_initialLength = window.history.length;
}
static Future goBackToRoot() async {
Completer completer = new Completer();
window.history.go(-(window.history.length-_initialLength));
Timer.run((){
completer.complete();
});
return completer.future;
}
}
那我就可以这样用了:
await Hist.goBackToRoot();
router.navigate(['/Main',{}]);