2017-07-03 16 views
1

我有一个搜索框,您可以从充满电视节目(及其相应ID)的阵列中进行搜索。使用角度路由器发送数据

landingpage.component.html

<li (click)="selectShow(list.show)" [routerLink]="['/details', list.id]" *ngFor="let list of shows"> </li> 

当用户点击一个节目,它通过对这个节目作为一个参数的新路线的ID,并加载我resultpage.component。 selectShow函数只记录所选节目的名称。

我的问题:

我要秀(list.show)值发送给我的resultpage.component,通过斜路由器。我似乎无法找到有关如何在文档中执行此操作的任何信息。

如何使用Angular路由器将我的list.show数据传递到我的resultpage.component?

+0

如果您希望数据在不同组件之间共享,那么服务就是您应该尝试的。不知道如何使用路由器,但是可以使用服务。 – Manish

回答

0

由于路线不会超过list.id,因此您需要在访问/details链接时提取数据。

这通常是通过为数据

https://angular.io/api/router/Resolve

创建Resolve做你去看/details之前它会检查您是否已经注册该路线的任何解析器什么,做的。

然后,您将能够从路由器获取该数据。

@Component() 
export class DetailComponent implements OnInit { 

    listDetails: Details; 

    constructor(private route: ActivatedRoute) {} 

    ngOnInit() { 
    this.listDetails = this.route.snapshot.data['details']; 
    } 
}