【发布时间】:2018-07-02 09:26:39
【问题描述】:
我想做什么
我正在尝试在我的应用程序中创建一个路由,我希望允许管理员输入 url 作为
http://localhost:4200/#/start/referral_code=jk
然后在组件内部获取referral_code 的值,即jk。
在我的路线中,我将路线定义为
{ path: 'start/:referral_code', component: StartPageComponent },
我想要实现的是,当管理员输入上面提供的URL 时,变量referral_code 的值应该在指定的组件StartPageComponent 内接收。
我在ngOnInit() 中添加了以下内容,如下所示
this.activatedRoute.params.subscribe((params: any) => {
if (params) {
let refCode = params.referral_code;
console.log(refCode);
}
});
实际发生了什么
只要我输入上面的URL,= 之后的部分就会与= 一起被删除,并且生成的 url 会更改为
http://localhost:4200/#/start/referral_code
在组件内部,console.log(refCode); 显示字符串referral_code,而不是referral_code 的值,即jk。
限制
我不能像http://localhost:4200/#/start?referral_code=jk一样使用QueryParams,我也不能更改网址http://localhost:4200/#/start/referral_code=jk
感谢您的帮助。
【问题讨论】:
-
您是否尝试输入此网址:
http://localhost:4200/#/start/jk。现在let refCode = params.referral_code;应该可以工作了。 -
我知道这行得通,但我想从使用
referral-code='jk'输入的 URL 中获取值 -
我明白了,您是否可以将
=编码为%3D(编码的uri)。 -
我也无法更改网址。我有一个网址列表,我一定会只使用那个网址
-
你能负担得起输入的网址
http://localhost:4200/#/start/referral_code=jk自动变成http://localhost:4200/#/start?referral_code=jk。意味着 Angular 将自己更改它并从 url 本身生成查询参数。
标签: javascript angular angular4-router