问题标签 [angular-activatedroute]

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 回答
1191 浏览

angular - 如何从两个 url 传递参数而不在 url 中显示它们

我需要从 URLA o urlB 传递参数,并且 urlB 必须显示(所以我不能使用skiplocation=true)。

在我的 ts 中(在 URLA 中):

当我接受参数时,我会这样做:

问题是它以这种方式向我显示 urlURLB?name=erika而我不想这样做,但我希望它向我显示 URLB 并传递给我隐藏的参数。任何人都可以帮助我吗?

0 投票
1 回答
69 浏览

angular - 如何使用角度激活的路由器从 url 访问查询参数?

我需要使用激活路由器使用查询参数访问当前 url。

当我访问我的网址时,http://localhost:4200/web/#/resources/sharepoint;siteId=docs;displayName=test;resourceId=4

打印一个空数组。如何访问查询参数“resourceId”?

我已经尝试过this.route.snapshot.queryParams,但它仍然打印一个空数组。

0 投票
0 回答
22 浏览

angular - ActivatedRoute.snapshot.url 没有带有多个模块的 url 的第一部分。如何访问完整的 URL?

我有三个角度模块(AppModule、ProductsModule 和 OrdersModule),配置如下。

在这些模块的组件中,ActivatedRoute.snapshot.url 没有 url 的第一部分(即“产品”或“订单”)。如何访问完整的 URL?

0 投票
2 回答
575 浏览

angular - 在路由器订阅中调用订阅方法时,我是否应该取消订阅 ActivatedRoute?

我读到通常您不必取消订阅RouterActivatedRoute明确地取消订阅,因为:

ActivatedRoute 及其 observables 与 Router 本身是绝缘的。当不再需要路由组件并且注入的 ActivatedRoute 随之消亡时,Router 会销毁路由组件。

来源:我是否必须取消订阅 ActivatedRoute(例如 params)observables?

但是我在父组件subscribe()中反复调用。只有当用户离开 Web 应用程序或关闭网站时,该组件才会被销毁,所以我担心这些订阅可能会一直保持活动状态。ActivatedRoute.firstChild.paramMapapp.componentparamMap

订阅调用是在Router.events订阅中进行的,如下所示:

每次有人导航到另一个组件/页面activatedRoute.firstChild.paramMap时,都会再次订阅。我必须在路由器订阅中执行此操作,并且仅当事件是一个实例时才这样做,NavigationEnd因为在此之前 url 参数尚不可用。

我的问题是,这些订阅会发生什么?他们是自动退订还是我需要手动退订每个新的?如果是后者,我该如何有效地做到这一点?

你们中的一些人可能会建议我使用activatedRoute.firstChild.snapshot.paramMap.myParameter,因为这样我就不必订阅任何东西了。但是,snapshot当 url 参数更改而同一组件被重用时,它不起作用。所以我不能用那个。

谢谢

0 投票
1 回答
4131 浏览

angular - Angular中matdialog中的路由

我正在尝试将路由添加到 Angular 中的Angular Material Mat 对话框。但是出现了一个问题。

当我尝试手动添加路由 URL

或者

它不会弹出

标签切换问题

此外,还有另一个问题是,当打开对话框进行登录时,如果我选项卡切换到登录,则 URL 没有变化

Navbar.component.ts(对话框初始化组件)

Navbar.component.html(上述代码的模板)

Dialog.component.html(对话框模板)

app.module.ts

默认视图

默认视图

点击登录

打开登录对话框

手动输入网址

手动输入 https://localhost:3200/login

输出(不弹出对话框但URL 已更改

普通视图 无变化

0 投票
2 回答
538 浏览

angular - 如何以角度获得Activatedroute

我想在 URL 更改时获取路由

当路线发生变化时如何登录我尝试了 ActivateRoute 但我制作的代码不起作用

这是我尝试过的:

在 param.id 中,id 是一个变量,但我不想使用它。我只想要 path: 'login', component: NavbarComponent } someting like this path

0 投票
1 回答
480 浏览

javascript - this.activatedRoute.parent 在角度服务中为空

我无法在角度服务中访问父对象表单激活路由,但它在组件中工作正常。这里有什么方法可以在服务中获得相同的父对象。

在组件中:

服务中

0 投票
1 回答
208 浏览

angular - 如何在不使用 TestBed 的情况下在 Angular 中模拟 ActivatedRoute

这个问题很简单。我从来没有真正喜欢过原始测试在 Angular(TestBed部分)中的工作方式,所以我一直以经典的方式完成它:使用ts-mockito进行模拟。不TestBed,无需配置,零混乱。我什至用 Jest 代替 Karma/Jasmine。

但是当谈到嘲笑时ActivatedRouter,我总是遇到麻烦,因为我猜你们很多人都在那里。我见过的一种解决方案是拥有一个具有大量属性的对象ActivatedRouter,并替换您要模拟的属性的值。该解决方案非常烦人,而且非常不可持续。

另一种解决方案是被迫使用TestBed我不太喜欢的,并执行以下操作:

这个其实还不错,但正如我所说,它迫使你使用TestBed. 那么,如何在ActivatedRoute不使用的情况下模拟行为TestBed

0 投票
0 回答
198 浏览

angular - 在 NgRx 效果中,ActivatedRoute 始终指向根

我试图弄清楚为什么我在 ngrx 效果中的 ActivatedRoute 总是指向 root,它的“.url”总是返回 Observable of path: ''.

0 投票
3 回答
585 浏览

angular - Angular 获取查询参数并调用服务

我的角度应用程序有问题。我必须调用从 url 读取一些参数的服务。它不起作用,因为在订阅完成参数之前触发了该服务。在我的服务文件中,我有这个:

然后是服务:

因此,在我的服务中,AppComponent我调用了该getConfigs()服务,但它不起作用,因为这两个参数未定义。我该如何解决?这就是我调用服务的方式AppComponent