当前位置: 首页 > 知识库问答 >
问题:

使用Angular 2 RC5路由器,在给定ActivatedRouteSnapshot的情况下,如何导航?

简学文
2023-03-14

用户可以在不登录的情况下访问我网站的某些部分。如果他们单击下载按钮并登录,下载会自动开始。但是,如果他们单击下载按钮但未登录,我想提示他们登录。一旦他们登录,我希望他们直接返回他们之前的路线。

当一个“匿名”用户单击下载按钮时,会给他们一个模式,并提示他们登录。如果他们决定登录,我会在本地存储中存储一些对象(是否认为ActivatedRouterSnapshot可以?)。登录后,我将检查本地存储中是否有存储在Stashedroote下的对象。如果有,我会用它导航他们回到原来的路线!

鉴于:

import { Router } from '@angular/router';

private someRoute: ActivatedRouterSnapshot;

constructor(private _router: Router) {}

我想:

<代码>此_路由器。导航(someRoute)

执行上述操作或获得存储路由和重新导航到路由的相同功能的语法是什么?

共有2个答案

高宏峻
2023-03-14

我有一个类似的问题,并通过以下方式解决了它。flatten来自洛达什,Route是您的ActivatedRoute。它不是很好,但它现在可以工作。您可能希望使用flattenDeep来适应深度嵌套的路由。

const route = flatten(route.pathFromRoot.map(r => r.url)).map(s => s.path);
this.router.navigate(route);
欧阳勇
2023-03-14

我认为您需要一些类似历史的东西来返回路线,您可以使用下面描述的代码

import {Component} from '@angular/core';
import {Location} from '@angular/common';


@Component(...)

class AppCmp {
  constructor(private _location: Location) {
  }
  backClicked() {
    this._location.back();
  }
}
 类似资料:
  • 问题内容: 给定完整路径,如何在Python 3.4中加载Python模块? 类似的问题如何在给定完整路径的情况下导入模块?涵盖了3.4之前的Python版本,但是得出的结论是,对于给出的答案,Python 3.4的支持已被弃用,因此赞赏所有针对Python 3.4的解决方案。 请注意,此问题与“导入任意python”源文件不是重复的。(Python 3.3+),因为对此的答案也使用了Python

  • 问题内容: 我需要在 不更改URL的情况下 进行路由。 在自己实现此功能之前,我尝试过通过React Router寻找一些东西。我看到有这样一个东西 : createMemoryHistory([options]) createMemoryHistory创建一个不与浏览器URL交互的内存历史对象。当您需要自定义用于服务器端呈现,自动测试的历史记录对象或不想操纵浏览器URL(例如,将应用程序嵌入到i

  • 点击Search by Name超链接时,URL会发生变化,但SearchByNameComponent会加载到app.component.html内容下面。如何在单击时只显示SearchbyNameComponent而不显示全部内容?target=_blank没有帮助。

  • 问题内容: 在Mongoose的早期版本(针对node.js)中,可以选择使用它而不定义架构 但是在当前版本中,“ noSchema”功能已被删除。我的架构可能会经常更改,并且实际上不适合已定义的架构,因此,是否有一种新的方式在猫鼬中使用无架构的模型? 问题答案: 我想这就是您要寻找猫鼬严密的东西 选项:严格 严格选项(默认情况下启用)可确保未在架构中指定的添加到模型实例的值不会保存到数据库中。

  • 我一直在试图确定如何检测点异常给定窗口异常。 更详细地说,我知道每个30天窗口是否包含异常。例如,窗口1从2009年1月1日开始,窗口2从2009年1月2日开始,依此类推。 现在我正试图利用这些知识来确定这些异常发生的日期。如果我在2009年5月1日至2009年8月1日期间出现异常,我的窗口将从2009年1月8日最后一天的窗口发出窗口信号,从2009年5日开始。 我只是不明白如何使用窗口找到出现异

  • 问题内容: 如果我具有特定的PID,如何在Windows上从Java代码中杀死特定的进程。 问题答案: 除了执行像这样的特定命令外,我不知道其他解决方案