我有一个使用 ngFor 检索的对象数组。随后在下面我有一个导航栏,我在其中重定向到一个或另一个组件,我需要传递上面选定的对象。但是我得到的最多的是接收文字“[Object object]
HTML
<div>
<div *ngFor="let visit of list">
<span (click)="selected(visit.id)">
<span class="photo">{{ visit.urlFoto }}</span>
<span id="text-data">
<span>{{ visit.cliente.nombre }} {{ visit.cliente.apellidos }}</span>
<span>{{ visit.cliente.apellido2}}</span>
</span>
</span>
</div>
</div>
<nav class="navbar navbar-expand-lg">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link" [routerLink]="['client']" [queryParams]="{'p': this.index - 1, 'list': this.listVisits[this.index - 1]}">Client Detail</a>
</li>
</ul>
</nav>
客户端组件的TS:
ngOnInit() {
this.sub = this.routeParams.queryParams.subscribe( params => {
this.index = params['p'];
this.listVisits = params['list'];
console.log(this.listVisits);
})
}
你不能,参数取自 URL,所以它们总是文本。您可以使用
JSON.stringify
,但这确实不是一个好主意。在这种情况下,理想的情况是拥有一个与不同组件通信或使用类似
localStorage
或sessionStorage
保存数据的服务(在这种情况下,您还必须使用JSON.stringify
您可以创建一个服务并将其注入根目录或将其注入一个模块,该模块可以到达您要与之通信的组件,然后在服务类上创建一个属性:
然后在您的组件中注入服务以加载您要在sharedObjContract属性中共享的对象: