0
PollDetailResolveクラスを使用して、PollDetailResolveクラスを作成してから、poll-detailページにナビゲートします。しかし、PollServiceも利用する別のデータ(canVote
と呼ぶブール値)を解決する必要があります。角度2でResolve Guardを使用して複数のデータを解決する
2つ以上のデータを解決する最良の方法は何ですか?
@Injectable()
export class PollDetailResolve implements Resolve<Poll> {
constructor(private pollService: PollService, private router: Router) { }
resolve(route: ActivatedRouteSnapshot): Observable<Poll> | boolean {
let id = route.params['id'];
return this.pollService.getById(id)
.map(poll => {
if (poll) {
return poll;
} else {
console.log("NOT FOUND!"); // TODO reroute
}
},
err => {
console.error(err);
});
}
}
マイポール・ディテールngOnInit()関数:
ngOnInit(): void {
this.route.data.forEach((data: { poll: Poll }) => {
this.poll = data.poll;
this.sharePoll(this.poll);
});
}
あなたが投稿したコードでは、「canVote」の役割は何であるのか分かりません。これらが2つの観察可能なものであれば、それらはちょうど結合されるべきです。 – estus
これは 'merge()'関数を使って行うことができますか? –
またはおそらくforkJoin。それは場合によって異なります。 – estus