在解析器中获取/传递值的正确方法 |角 10/11

问题描述

所以,我试图在开始加载之前将这些数据放入组件中,以便我可以在视图加载之前设置一些内容。但我对这个解析器的工作方式、返回的内容以及如何读取它感到困惑。

我没有得到正确的数据类型,我不确定如何正确调用这个获取,所以我最终可以得到一个数组,然后用来推送到我的组件中。

所以解析器:

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}}

所以,这里让我困惑的是如何在解析器中正确调用提取。

我应该订阅/管道吗?我不确定如何处理它,然后如何调整解析器在路由中返回给我的内容? E.G 将该数据放入数组中以供使用。

我尝试了一些完全愚蠢的事情。我已经通读了 Observable 和 rxjs 上的 angular 文档,我大致了解它们的含义,observables 和需要 sub 来启动流,但我只是对如何处理它们的更复杂版本感到困惑,当我有接口时/我想和他们一起使用的课程..

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)