【问题标题】:How to pass an object from one component to another via navigation route?如何通过导航路径将对象从一个组件传递到另一个组件?
【发布时间】:2017-08-22 13:34:59
【问题描述】:

我找不到如何在 Angular 中将复杂对象从一个组件传递到另一个组件。

我的应用程序的不同模块中有两个组件,我想从一个组件导航到另一个组件,然后将复杂对象传递给第二个组件。

组件一:

buttonSubmit() {
    this._router.navigate(['/app/sales/history',  { product: this.product}]);
}

所以在组件二中我想使用product 对象:

 this._route.params.subscribe(v => console.log(v));

我尝试使用ActivatedRoute,但它不起作用,在 Angular 文档中他们有父/子通信的示例,但事实并非如此。

【问题讨论】:

    标签: angular


    【解决方案1】:

    制作服务并将数据保存到服务中。 关于组件一:

    ngOnDestroy() {
      this.ProductService.product = this.product;
    }
    

    关于组件二

    ngOnOnit() {
      this.product = this.ProductService.product;
    }
    

    在组件一的父模块 some.module.ts 中添加 ProductService 到 providers:

    @NgModule({
    providers: [ProductService]
    })
    

    在组件的两个父模块other.module.ts中添加ProductService到imports中:

     @NgModule({
        imports: [ProductService]
        })
    

    【讨论】:

    • 真的需要做一个服务来传递一个小对象吗?
    • 尝试将 this.product 字符串化并发送 this._router.navigate(['/app/sales/history', { product: this.product}]);但这是一种不好的做法
    猜你喜欢
    • 2019-10-27
    • 2017-04-30
    • 2021-02-02
    • 2019-07-04
    • 2016-03-09
    • 2020-12-30
    • 1970-01-01
    • 2023-01-30
    • 2019-10-10
    相关资源
    最近更新 更多