【问题标题】:How to pass the value from one page to another in Angular?如何在Angular中将值从一个页面传递到另一个页面?
【发布时间】:2019-06-23 11:41:09
【问题描述】:

我有 3 个链接,当我点击任何链接时,我会转到其他页面:

this.nav.setPages([this.nav.first(), NextPage]);

如何根据点击的链接将值从一个页面传递到另一个页面?

【问题讨论】:

  • 这个问题似乎很不清楚。 nav 是什么?

标签: angular


【解决方案1】:

您必须在构造函数中注入路由器:

constructor(public router: Router) {}

在你想要触发导航的函数中,你使用:

this.router.navigate(['./NextCmp', {param: 3}])

比在 NextCmp 中注入:

constructor(public params: RouteParams) { params.get('param'); }

Plunker: https://plnkr.co/edit/y3xa2SCGpGlCu4HxhNY8?p=preview

【讨论】:

  • 我可以在 RouteParams 中发送对象/数组吗?
  • 不,但你总是可以序列化 - 反序列化它。
  • 为对象或其他东西序列化/反序列化?我不能正确地得到你。如果你知道答案,请在这里回答stackoverflow.com/q/34432886/5043867
  • 一个人在那里回答:{ param: JSON.stringify(object)} 你可以使用它。我不认为你可以通过 url 发送比字符串或数字更多的东西,这是合乎逻辑的。你想把什么发送到另一条路线?您可以使用 localStorage 或任何其他持久性存储吗?
  • 是的,从逻辑上讲,我必须只发送字符串或数字,但根据要求,我必须在 URL 中发送对象。当我发送json.stringify(object) angular 时会抛出错误object of undefined 吗?我想通过 routeParams 发送整个对象。不,我不能使用本地存储或任何其他存储。太糊涂了!!!有什么建议吗?
【解决方案2】:

你必须改变你的功能代码:

this.router.parent.navigate(['/PreviousDetailsCmp' {value1:abc, value2:xyz}]);

以及你想在哪里使用这个参数值注入RouteParams:

 constructor(public params: RouteParams){
        this.val1 = params.get('value1')
        this.val2 = params.get('value2')
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多