使用路由将对象从一个组件传递到另一个组件

RRGT19

我正在 Angular 6 中做一个 web 应用程序,我在一个页面中有一个新闻列表。我有一个名为“查看详细信息”的按钮,我想将用户带到另一个页面(组件)以显示所有信息。

    // Object to pass
    News {
      title: string;
      date: Date;
      body: string;
    }

    // Routing
    {path: 'news-details/:data', component: NewsDetailsComponent},

    <ng-container *ngFor="let data of newsFromToday; index as i">
         <button type="button" [routerLink]="['/news-details', data]">See details</button>
    </ng-container>

在我想接收数据的组件中:

constructor(private route: ActivatedRoute) { }

      ngOnInit() {
        const data = this.route.snapshot.paramMap.get('data');
        console.log(data);
      }

找不到网页

我试过了:

<button type="button" routerLink="/news-details/{{JSON.stringify(data)}}">See details</button>

ngOnInit() {
    const competitionData = JSON.parse(this.route.snapshot.paramMap.get('data'));
    console.log(competitionData);
  }

在 Object.eval [as updateDirectives] 中读取未定义的属性“stringify”

我的目标是在变量中接收对象以显示模板中的所有信息。

巴塞尔伊斯梅尔

使用 ActiveRoute 的解决方案(如果你想通过路由传递对象 - 使用 JSON.stringfy/JSON.parse):

// Routing
{path: 'news-details', component: NewsDetailsComponent}


<ng-container *ngFor="let data of newsFromToday; index as i">
     <button type="button" (click)="showNewsDetails(data)">See details</button>
</ng-container>

发送前准备对象:

constructor( private router : Router) { }

showNewsDetails(data) {

  let navigationExtras: NavigationExtras = {
    queryParams: {
        "data": JSON.stringify(data)
    }
  };

  this.router.navigate(["news-details"],  navigationExtras);
}

在目标组件中接收您的对象:

 constructor( private route: ActivatedRoute) {}

  ngOnInit(): void {
    super.ngOnInit();

  this.route.queryParams.subscribe(params => {
     const data = = JSON.parse(params["data"]);
  });
}

请注意,如果您不想公开 URL 中的所有数据,则可以使用服务。在路由参数中,您应该只传递要反映在浏览器 URL 栏中的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用路由器从一个组件到另一个ReactJS访问传递的数据

使用@input 将对象数组从角度模板传递到另一个组件

如何在Angular 2中将对象从一个组件传递到另一个组件?

如何将对象从一个组件传递到另一个组件以在angular2中建立数据模型?

Angular 4-将对象从一个组件传递到另一个组件(无父级-子级层次结构)

如何在 React 中将数据从单击的组件从一个路由传递到另一个路由?

在ReactJs中将状态从一个组件传递到另一个组件

将数据从一个组件传递到另一个组件

将错误数据从一个组件传递到另一个组件

将数据从一个组件传递到另一个组件

Vue/Vuecli3 - 如何使用参数从一个组件路由到另一个组件

Vue-Router-将数据从一个路由组件传递到另一个

将数据从一个路由器(组件)传递到另一个

无法使用 React Native 将值从一个组件传递到另一个组件

使用Formik在React中将数据从一个组件传递到另一个组件

React-Router:使用 Navlink 将 props 从一个组件传递到另一个组件

如何使用 Angular 将函数从一个组件传递到另一个组件?

将对象从一个类传递到另一个类

将对象从一个窗口传递到另一个窗口

将数据从一个组件传递到另一个Vuejs

将状态从一个React组件传递到另一个

React Native - 将数据从一个组件传递到另一个

将数据从一个组件传递到另一个 Angular 2

Angular 2-通过路由器链接将对象从一个组件发送到另一个组件

angular 2 - 在 div 单击时,将对象传递给另一个组件,另一个组件使用该对象调用休息服务

如何将对象绑定到一个组件到另一个组件?

没有收到从一个组件传递到另一个组件的角度路由器参数值?

使用导航组件从一个活动导航到另一个活动

如何将变量从一个组件传递到另一个组件?