问题标签 [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.
angularjs - Angular 2:如何跨不同路由共享非模块级服务
我有一个服务ServiceA
,它有自己的状态(实例变量等),在我的模块中我有多个 service 实例ServiceA
。
由于我需要有多个实例ServiceA
,因此我无法使其成为模块级组件。
在ComponentB
实例化一个ServiceA
实例并可能改变其状态:
同样在我的 HTML 模板中,ComponentB
我有一个路由到ComponentC
,它需要访问同一个ServiceA
实例:
这是 的定义ComponentC
:
如果是模块级组件,则在和ServiceA
之间共享它不会有问题,因为它们都在同一个模块中。但是,由于是直接注入的,我不能再这样做了。请注意,每次只会创建一个并在.ComponentB
ComponentC
ServiceA
ComponentB
ComponentC
ComponentC
ComponentB
有没有办法在ComponentB
和之间共享数据ComponentC
?谢谢!
angular - Angular 2 在重新加载时重用相同的路由
如果我重新加载页面 (F5) 或将其打开到新选项卡中,我想使用相同的路线。
例如,我使用以下路线:
如果我按 F5 这是结果:
问题是它显示与以前相同的组件,但由于缺少 id 没有值。应用程序崩溃。
(我在另一个问题上坐了几个小时,也许我现在还不够专注,无法找到错误。)
我希望有一个人可以很快帮助我。
angular - Angular 2子路由不导航
我有一个路线配置,在下面进行了简化和复制。我的问题是,每当我尝试导航到 时/teams/something/settings/users/invite
,我都会立即重定向到/teams/something/settings/users/list
. 我很想得到一些帮助来弄清楚我的导航出了什么问题。
守卫都按预期工作。
angular - Angular - 如何在应用程序组件中获取当前网址
我正在尝试获取应用程序的当前 url,AppComponent
但它总是返回根路径/
。例如,如果我/users
在新选项卡中访问,预期结果应该是/users
,但是当我在控制台中检查时,它显示
/
.
但是,当我在子组件中执行相同操作时,它会起作用。以下是我的代码:
这怎么可能?
javascript - Angular 4:无法从订阅内部重定向
经过多次不成功的尝试,我仍然无法从订阅内部重定向。
我想捕获错误代码 401 以将用户重定向到登录页面,所以http.get.subscribe
如果我有错误并且如果它是 401 我执行goLogin()
。这个函数必须告诉路由器导航到登录页面,但它没有。一切正常,除了路由。
这是我的代码:
这里是app.routes.ts
它进入goLogin();
并console.log(...)
执行,但不会重定向到登录页面。
如果有帮助,这是控制台输出:
angular - 如果路由器从自身导航到当前路由(使用新的查询参数),则不会调用 Angular 2+ ngOnInit()
在我的home.component.ts
,我的ngOnInit
方法是:
这是我的customFunction
'' 路由重定向到home.component.ts
HomeComponent(其片段在上面)。
在检查控制台日志时,我看到当使用其他组件(通过this.router.navigate([''], {queryParams: {refresh:true}}
)的刷新参数调用 HomeComponent 时,会调用 ngOnInit()。但是如果它是从 HomeComponent 本身调用的(如上面的代码),则不会调用 ngOnInit()。
那么这是预期的行为吗?我可以在自定义函数中安全地this.ngOnInit()
调用router.navigate
手动调用ngOnInit()
吗(假设ngOnInit
如果 HomeComponent 被重定向到自身,则永远不会被调用)?
angular - Angular 4 辅助路线未按预期工作
我有一个应用程序,其中有一个登录组件和一个主模块。我想在主模块中有一个辅助路由。
一旦用户登录,我就会重定向到主路由。
这是我的 app-routing.module
下面是我的 home-routing.module.ts
我的期望是,当应用程序被重定向到主路由时,this.router.navigate(['/home']);
应该渲染 HomeComponent(现在正在渲染)和 DashboardComponent 应该渲染(不是渲染)
我尝试了各种技巧,例如提供需要在 aux 路由中呈现到“仪表板”的组件路径,以及从主组件的 ngOnInit 方法尝试重定向到仪表板路由this.router.navigate([{ outlets: { aux: 'dashboard' }}]);
但注意似乎有效。我做错了什么?
angular - 如何不在子元素上应用 [routerLink]?
我想让一个子元素触发它自己的点击,并且不响应它具有[routerLink]的父元素,问题是子元素无法在其中运行它delete()
的功能,(click)="delete()"
只需跟随它的父元素[routerLink]
(它导航到 /product/:id)
我试图移动[routerLink]
到鞋面div
,但它仍然做同样的行为
angular - Angular2中未定义的路由器
我想在成功的用户验证后定义从我的登录到我的仪表板的重定向。但是当我在我的登录组件中实现“this.router.navigate(['/dashboard'])”时,它给了我错误:“异常:未定义不是一个对象(评估'this.router')”
这是我实现该功能的方式:
希望,有人可以帮助我!
更新:当我使用我的登录信息登录时发生错误。我从服务器获得了我的 ConnectReply,并且连接存在。但是重定向不起作用。有多个错误。我将尝试在以下内容中显示这些内容:
- 例外:未定义不是对象(评估“this._router”)
- 原始堆栈跟踪:(这里有许多文档和句柄错误)
- TypeError:未定义不是对象(评估“this._router”)
路线配置: