我试图通过角度2中的路由器链接发送对象。 我为我的人阵列中的每个人对象创建一个人物配置文件组件,并将其显示在我的屏幕上。
<div *ngFor="#person of people; #i = index">
<person-profile [person]="person"></person-profile>
</div>
person-profile组件显示person对象中包含的几条信息。我试图将整个person对象从person-profile组件发送到名为&#34; map&#34;使用路由器链接并将person对象作为参数传递。
<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>
执行路由器链接。它始终是人民名单中的第一人。奇怪的是,如果我传递来自person对象的特定参数,它就可以工作。例如,如果我传递person.family_name而不是整个person对象,一切正常,但我想发送整个对象。有什么建议吗?
谢谢!
答案 0 :(得分:10)
AFAIK无法传递对象,因为RouterLink
类的源不表示对此有任何支持,因为数据需要在URL字符串中显示。
我的建议是传递一个ID并在允许按ID获取具体实例的服务中共享用户。