问题标签 [angular-router]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
25 浏览

angularjs - Angular 2:如何跨不同路由共享非模块级服务

我有一个服务ServiceA,它有自己的状态(实例变量等),在我的模块中我有多个 service 实例ServiceA

由于我需要有多个实例ServiceA,因此我无法使其成为模块级组件。

ComponentB实例化一个ServiceA实例并可能改变其状态:

同样在我的 HTML 模板中,ComponentB我有一个路由到ComponentC,它需要访问同一个ServiceA实例:

这是 的定义ComponentC

如果是模块级组件,则在和ServiceA之间共享它不会有问题,因为它们都在同一个模块中。但是,由于是直接注入的,我不能再这样做了。请注意,每次只会创建一个并在.ComponentBComponentCServiceAComponentBComponentCComponentCComponentB

有没有办法在ComponentB和之间共享数据ComponentC?谢谢!

0 投票
0 回答
283 浏览

angular - Angular 2 在重新加载时重用相同的路由

如果我重新加载页面 (F5) 或将其打开到新选项卡中,我想使用相同的路线。

例如,我使用以下路线:

如果我按 F5 这是结果:

问题是它显示与以前相同的组件,但由于缺少 id 没有值。应用程序崩溃。

(我在另一个问题上坐了几个小时,也许我现在还不够专注,无法找到错误。)

我希望有一个人可以很快帮助我。

0 投票
0 回答
186 浏览

angular - Angular 2子路由不导航

我有一个路线配置,在下面进行了简化和复制。我的问题是,每当我尝试导航到 时/teams/something/settings/users/invite,我都会立即重定向到/teams/something/settings/users/list. 我很想得到一些帮助来弄清楚我的导航出了什么问题。

守卫都按预期工作。

0 投票
5 回答
19458 浏览

angular - Angular - 如何在应用程序组件中获取当前网址

我正在尝试获取应用程序的当前 url,AppComponent但它总是返回根路径/。例如,如果我/users在新选项卡中访问,预期结果应该是/users,但是当我在控制台中检查时,它显示 /.

但是,当我在子组件中执行相同操作时,它会起作用。以下是我的代码:

这怎么可能?

0 投票
2 回答
2012 浏览

javascript - Angular 4:无法从订阅内部重定向

经过多次不成功的尝试,我仍然无法从订阅内部重定向。

我想捕获错误代码 401 以将用户重定向到登录页面,所以http.get.subscribe如果我有错误并且如果它是 401 我执行goLogin()。这个函数必须告诉路由器导航到登录页面,但它没有。一切正常,除了路由。

这是我的代码:

这里是app.routes.ts

它进入goLogin();console.log(...)执行,但不会重定向到登录页面。

如果有帮助,这是控制台输出:

0 投票
1 回答
571 浏览

angular - 如果路由器从自身导航到当前路由(使用新的查询参数),则不会调用 Angular 2+ ngOnInit()

在我的home.component.ts,我的ngOnInit方法是:

这是我的customFunction

'' 路由重定向到home.component.tsHomeComponent(其片段在上面)。

在检查控制台日志时,我看到当使用其他组件(通过this.router.navigate([''], {queryParams: {refresh:true}})的刷新参数调用 HomeComponent 时,会调用 ngOnInit()。但是如果它是从 HomeComponent 本身调用的(如上面的代码),则不会调用 ngOnInit()。

那么这是预期的行为吗?我可以在自定义函数中安全地this.ngOnInit()调用router.navigate手动调用ngOnInit()吗(假设ngOnInit如果 HomeComponent 被重定向到自身,则永远不会被调用)?

0 投票
1 回答
1204 浏览

angular - Angular 4 辅助路线未按预期工作

我有一个应用程序,其中有一个登录组件和一个主模块。我想在主模块中有一个辅助路由。

一旦用户登录,我就会重定向到主路由。

这是我的 app-routing.module

下面是我的 home-routing.module.ts

我的期望是,当应用程序被重定向到主路由时,this.router.navigate(['/home']);应该渲染 HomeComponent(现在正在渲染)和 DashboardComponent 应该渲染(不是渲染)

我尝试了各种技巧,例如提供需要在 aux 路由中呈现到“仪表板”的组件路径,以及从主组件的 ngOnInit 方法尝试重定向到仪表板路由this.router.navigate([{ outlets: { aux: 'dashboard' }}]);

但注意似乎有效。我做错了什么?

0 投票
3 回答
2944 浏览

angular - 如何不在子元素上应用 [routerLink]?

我想让一个子元素触发它自己的点击,并且不响应它具有[routerLink]的父元素,问题是子元素无法在其中运行它delete()的功能,(click)="delete()"只需跟随它的父元素[routerLink](它导航到 /product/:id)

我试图移动[routerLink]到鞋面div,但它仍然做同样的行为

0 投票
2 回答
3495 浏览

angular - Angular2中未定义的路由器

我想在成功的用户验证后定义从我的登录到我的仪表板的重定向。但是当我在我的登录组件中实现“this.router.navigate(['/dashboard'])”时,它给了我错误:“异常:未定义不是一个对象(评估'this.router')”

这是我实现该功能的方式:

希望,有人可以帮助我!

更新:当我使用我的登录信息登录时发生错误。我从服务器获得了我的 ConnectReply,并且连接存在。但是重定向不起作用。有多个错误。我将尝试在以下内容中显示这些内容:

  1. 例外:未定义不是对象(评估“this._router”)
  2. 原始堆栈跟踪:(这里有许多文档和句柄错误)
  3. TypeError:未定义不是对象(评估“this._router”)

路线配置:

0 投票
0 回答
1050 浏览

angular - 浏览器 url 中的别名 angular 2 路由路径

我正在使用 Angular 2 处理模块和功能加载视图,根据我们的要求,它应该根据所选模块显示功能视图。

在此处输入图像描述

所选模块 1 的功能视图

在此处输入图像描述

当前路线路径

在此处输入图像描述

所以浏览器网址看起来像这样

在此处输入图像描述
但我需要像这样改变它

在此处输入图像描述

请帮我解决这种情况。谢谢你。