如何从angular 2中的可选参数中提取数据?

How to extract data from optional parameter in angular 2?

我有一个包含用户详细信息(例如姓名、电子邮件等)的对象。当我尝试在显示 url 的另一个组件中提取此对象时,我将此对象作为可选参数传递给

object object] 即使我尝试了 JSON.Stringfy 但无法提取。

user has {"id":5,"name":"Chelsey Dietrich","username":"Kamren","email":"Lucio_Hettinger@annie.ca","address":{"street":"Skiles Walks","suite":"Suite 351","city":"Roscoeview","zipcode":"33263","geo":{"lat":"-31.8129","lng":"62.5342"}},"phone":"(254)954-1289","website":"demarco.info","company":{"name":"Keebler LLC","catchPhrase":"User-centric fault-tolerant solution","bs":"revolutionize end-to-end systems"}}
 passID(user){
    console.log(JSON.stringify(user));
    this._router.navigate(['/detail', user.id, {user}]);
  }

接收器部分(详细组件)

 this._ActiveRoute.params.subscribe((params:Params) => {
                let id = parseInt(params['id']);
                this.userID = id;//success

                let output = params['user'];
               console.log(output)// cant able to extract object([object object])

Browser URL - http://localhost:4200/detail/5;user=%5Bobject%20Object%5D

来自你的url

http://localhost:4200/detail/5;user=%5Bobject%20Object%5D

router.navigate() 期望为参数传入字符串。你可以看到 [object Object] 被传递到你的 url 而不是实际的对象。这是因为 (object).toString() 产生 [object Object]。在传入之前尝试将对象字符串化。

this._router.navigate(['/detail', user.id, {user: JSON.stringify(user)}]);

要使用字符串化对象,您需要在订阅中对其进行解析

// output equals the object you passed in
let output = JSON.parse(params['user']);