【发布时间】:2018-11-15 13:41:29
【问题描述】:
我想从 url 获取令牌,但它返回 null 作为值。
app.component.ts:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
constructor(private route: ActivatedRoute) { }
ngOnInit(){
const token = this.route.snapshot.paramMap.get('token');
console.log(token);
和routing.ts
{ path: ':token', component: AppComponent }
我想在 / 之后抓取 url 中的内容,例如:localhost:4200/content-to-grab 有什么解决办法吗?
【问题讨论】:
-
不鼓励使用快照。使用
route.paramMap.subscribe获取它们。 -
@trichetriche 你从哪里得到的?
-
@Jota.Toledo 我自己的理解和试验(可能还有一些我自己记不起的博客或文章):快照不会在相同的路线导航或 URL 参数更改时更新,而路线依赖 observables 并不断更新。
-
所以?根据用例,访问
snapshot成员是完全有效的,因为ActivatedRouteSnapshot的某些成员不会在导航事件上发生变化。例如,通过Route定义的data属性定义的静态值。 -
@Jota.Toledo,您可能想看看StackBlitz Sample 中的
ngOnInit中的代码。您会注意到使用snapshot并不会提供更新后的id。此外,更重要的是使代码统一,以便开发人员一方面不会snapshot.params而另一方面subscribeing 到route.params。大多数开发人员并不真正知道何时使用哪一个。我个人在 SO 上看到了很多关于相同问题的问题。
标签: angular angular-routing routeparams angular-activatedroute