所以,我试图在组件开始加载之前将这些数据放入组件中,这样我就可以在视图加载之前设置一些东西。但我对这个解析器的工作原理、它返回的内容以及如何阅读它感到困惑。
我没有得到正确的数据类型,我不确定如何正确调用这个 fetch,所以我可以最终得到一个数组,然后用来推入我的组件。
所以解析器:
import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from "@angular/router";
import {Observable} from "rxjs";
import {Injectable} from "@angular/core";
import {EntryService} from "../app/entry.service";
import { Entrymodel } from "./entry.model";
@Injectable()
export class SinglePostResolver implements Resolve<any>{
entries :Entrymodel[] = [];
constructor(
private entry:EntryService,
){
}
resolve(): Observable<any>//:Observable<EntryModel>{
return this.entry.getAventry()
}
}
入口模型看起来像这样
export class Entrymodel {
id: string;
surname: string;
color: string;
startDate: Startdate;
endDate: Enddate;
info: string;
status?: string;
inbet?: Inbetween[];
editing?: boolean;
}
export class Startdate{
day: string;
month: string;
year: string;
}
export class Enddate{
day: string;
month: string;
year: string;
}
export class Inbetween{
day: string;
month: string;
year: string;
}
获取:
getAventry(){
return this.firestore.collection('entry', x => x.where('status' , '==', 'Attending')).snapshotChanges();
}
我试图到达的地方:
ngOnInit(): void{
this.route.data.subscribe( (data) => {
});
console.log(this.entries)
}
路线:
{ path: 'calendar', component: CalendarComponent, resolve: { singlePost: SinglePostResolver}}
所以,这里让我感到困惑的是如何在解析器中正确调用 fetch。
我应该订阅/管道吗?我不确定如何处理它,然后如何调整解析器在路线中返回给我的内容?EG 将该数据放入数组中以供使用。
我尝试了一些完全愚蠢的事情。我已经阅读了 Observable 和 rxjs 上的 angular 文档,我主要理解 observables 的含义,并且需要一个 sub 来启动流,但是当我有接口时,我只是对如何处理它们的更复杂版本感到困惑/我想和他们一起使用的课程..