Angular 使用 observable 执行 resolve
Angular execute resolve with observable
在 angular 5 项目中,我想在加载视图之前执行解析器。问题是我想从解析器 return 获取的数据取决于一个可观察对象。这是代码:
解析器:
@Injectable()
export class PlayersResolver implements Resolve<any> {
constructor(private playersSrv: PlayersService) {
this.playersSrv.getStandings();
}
resolve() {
return this.playersSrv.standings$;
}
}
解析器使用的服务:
@Injectable()
export class PlayersService {
standingsSubject = new ReplaySubject<any>();
standings$ = this.standingsSubject.asObservable();
constructor(private http: HttpClient) {}
getStandings(): void {
this.http.get('http://localhost:8080/api/fixtures/standings')
.subscribe((response: any) => {
this.standingsSubject.next(response);
});
}
}
使用此代码尝试导航到视图时会显示任何内容。关于如何实施解析以获取组件中的数据的任何想法?
谢谢
1.Return 可从服务函数中观察到。
2.Remove 订阅服务。
3.Just 在 resolve 方法中调用服务函数 return 调用服务函数 inturn returns observable
resolve():observable<any>{
return this.playersSrv.getStandings().map((data)=>{//do something with data})
}
4.Resolve 守卫自动订阅服务调用,下一个路由仅在其解析时加载
在 angular 5 项目中,我想在加载视图之前执行解析器。问题是我想从解析器 return 获取的数据取决于一个可观察对象。这是代码:
解析器:
@Injectable()
export class PlayersResolver implements Resolve<any> {
constructor(private playersSrv: PlayersService) {
this.playersSrv.getStandings();
}
resolve() {
return this.playersSrv.standings$;
}
}
解析器使用的服务:
@Injectable()
export class PlayersService {
standingsSubject = new ReplaySubject<any>();
standings$ = this.standingsSubject.asObservable();
constructor(private http: HttpClient) {}
getStandings(): void {
this.http.get('http://localhost:8080/api/fixtures/standings')
.subscribe((response: any) => {
this.standingsSubject.next(response);
});
}
}
使用此代码尝试导航到视图时会显示任何内容。关于如何实施解析以获取组件中的数据的任何想法?
谢谢
1.Return 可从服务函数中观察到。 2.Remove 订阅服务。 3.Just 在 resolve 方法中调用服务函数 return 调用服务函数 inturn returns observable
resolve():observable<any>{
return this.playersSrv.getStandings().map((data)=>{//do something with data})
}
4.Resolve 守卫自动订阅服务调用,下一个路由仅在其解析时加载