Man*_*gan 4 javascript typescript angular-routing angular angular4-router
在一个按钮点击我有功能,
inviewMockupEvent(data) {
console.log(data);
this.router.navigate(['/page-mockup'], { queryParams: { data: data }, skipLocationChange: true });
}
console.log(data) give the result as {mockup_id: "123", project_id: "456", module_id: "678", release_id: "890", requirement_id: "432", …}
Run Code Online (Sandbox Code Playgroud)
在导航组件中,我获取的数据如下,
ngOnInit() {
this.activatedRoute.queryParams.subscribe(params => {
let data = params['data'];
console.log(data);
console.log(JSON.stringify(data));
});
Run Code Online (Sandbox Code Playgroud)
在哪里,
console.log(data) gives output as [object Object]
console.log(JSON.stringify(data)) gives output as "[object Object]"
Run Code Online (Sandbox Code Playgroud)
并且,
console.log(data.mockup_id) gives result undefined
Run Code Online (Sandbox Code Playgroud)
在这里我需要检索对象值,但无法获取它。请帮助我通过查询参数检索数据并使用打字稿ngOnit而不使用 html获取数据。
基于你的 url localhost:80000/#/page-mockup?data=%5Bobject%20Object%5D,原因是因为 Angular 仅选择data键并将值转换为字符串(我猜这仅适用于对象值),这就是你得到 [object Object] 的原因
console.log({mockup_id: "123", project_id: "456", module_id: "678", release_id: "890", requirement_id: "432"}.toString());Run Code Online (Sandbox Code Playgroud)
所以转换这个
this.router.navigate(['/page-mockup'], { queryParams: { data: data }, skipLocationChange: true });
Run Code Online (Sandbox Code Playgroud)
对此
this.router.navigate(['/page-mockup'], { queryParams: data, skipLocationChange: true });
Run Code Online (Sandbox Code Playgroud)
小智 6
您正在为对象添加一个无用的图层。传播它。
this.router.navigate(['/page-mockup'], { queryParams: { ...data }, skipLocationChange: true });
Run Code Online (Sandbox Code Playgroud)如果要使用数组表示法,请使用数组变量,而不是映射变量。
显示正确的变量。
this.activatedRoute.queryParams.subscribe(params => {
let data = params;
console.log(data.mockup_id);
});
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
12511 次 |
| 最近记录: |