如何从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']);
我有一个包含用户详细信息(例如姓名、电子邮件等)的对象。当我尝试在显示 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']);