【问题标题】:How to send object from parent to child component - it become undefined after routing parent to child如何将对象从父组件发送到子组件 - 在将父组件路由到子组件后它变得未定义
【发布时间】:2023-03-10 06:38:02
【问题描述】:

我有一个列表客户端列表(agGrid)被使用。单击时,它会导航到 editClient 表单,即 childComponent。如何从该客户端列表组件传递整个对象以从该组件编辑客户端?请告诉我最好的方法..

下面是我要传递的对象

{
    "ClientTypeId": "3",
    "IsActive": "1",
    "CompByName": "Administration",
    "RTId": "8",
    "ALToName": "Sam Artho",
    "IsSecured": "1",
    "Status": null,
    "TTQStatus": "Active",
    "StsId": null,
    "ttqId": "3486",
    "FName": "Quto Iva",
    "ContactNo": "1111111111",
    "ACTTo": "8",
    "ACTBy": "4",
    "CrDate": "22/10/2021",
    "ModBy": "0",
    "ModDate": "",
    "Remark": " ",
    "IsView": "2"
}

我可以在点击编辑按钮时得到这个对象。

【问题讨论】:

  • 您必须通过服务、ngrx 等保持对象处于状态,以便在您导航时,您的子组件可以检索该项目并显示它。

标签: angular


【解决方案1】:

我建议你以这种方式实现:

  1. 创建服务。 (ng g s <service-name>)
  2. 将您的变量放入该服务中,以便您可以在两个页面中引用它们。

【讨论】:

  • 感谢您的帮助。实际上,我为此找到了非常好的解决方案 this._router.navigateByUrl('/client/edit-client', { state: { editClient } });我可以通过在 ngOnInit() 中使用 window.history.state 来访问编辑客户端组件上的对象我认为,这将是在另一个组件上获取对象/数组/..数据的最佳方式,我知道数据会有页面刷新时消失了,但我认为服务也是如此!
  • 是的,您是对的,但这样黑客也可以使用window 对象访问您的数据。最好使用服务将数据保存在内存级别并使其不可访问。 @Raj
  • 哦,使用起来不安全吗?我正在使用 SSL,因此数据将在安全的加密隧道中传输!
  • 打开控制台,如果您可以记录它不安全,则在其中
  • 你是对的!我可以使用控制台中的窗口对象访问数据。
猜你喜欢
  • 2017-09-13
  • 1970-01-01
  • 2021-05-13
  • 2020-09-28
  • 2021-08-15
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-08-28
相关资源
最近更新 更多