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

Angular 2 - send object from one component to another over router-link

我正在尝试通过 angular 中的路由器-link 发送对象 2。 我为 person 数组 people 中的每个 person 对象创建一个 person-profile 组件,并将它们显示在我的屏幕上。

<div *ngFor="#person of people; #i = index">
    <person-profile  [person]="person"></person-profile>
</div>

person-profile 组件显示person 对象中包含的几条信息。我正在尝试使用路由器 link 将整个人员对象从人员配置文件组件发送到名为 "map" 的组件,并将人员对象作为参数传递。

<person-profile>
  ..code..
    <tr>
       <td class="category">Address</td>
       <td>{{ person.visiting_address }}</td>
       <td *ngIf="person.visiting_address"><a [routerLink]="['Map',{person:person}]">View on map</a></td>
    </tr>
..code..
<person-profile>

在我的地图组件中,我通过以下方式检索对象:

var person = <any> routeParams.get('person');

问题是无论我从哪个 <person-profile> 执行 router-link,我每次在地图组件中遇到的都是同一个人。它始终是人员列表中的第一个人。奇怪的是,如果我从 person 对象传递特定参数,它就会起作用。例如,如果我传递 person.family_name 而不是整个人对象,一切正常,但我想发送整个对象。有什么建议吗?

谢谢!

AFAIK 无法传递对象,因为 RouterLink class 的来源并未表明对此有任何支持,并且因为数据需要在 URL 细绳。

我的建议是传递一个 ID 并在允许通过 ID 获取具体实例的服务中共享用户。