TransferState некоторая часть разрешенных данных отсутствует на стороне клиента, хотя присутствует на сервере
App .routing.module:
{
path: '',
component: IndexComponent,
resolve: { videos: GetVideosResolver },
},
GetVideosResolver:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const VIDEOS_KEY = makeStateKey('videos');
if (this.transferState.hasKey(VIDEOS_KEY)) {
const videos = this.transferState.get(VIDEOS_KEY, null);
this.transferState.remove(VIDEOS_KEY);
return of(videos);
} else {
return this.http.get(`${environment.api_url}/video/list`).pipe(
tap((videos: any) => {
if (isPlatformServer(this.platformId)) {
this.transferState.set(VIDEOS_KEY, videos);
}
}),
catchError((err) => of())
);
}
}
console.log(this.route.shapshot.data.videos) печатает правильные разрешенные данные в моей консоли IDE, хотя в консоли браузера отсутствует какой-то важный объект. Кажется, что angular имеет какое-то ограничение на то, насколько большой объект вы можете разрешить за один раз. Как мне обойти это?
1 ответ
Все заработало.
this.transferState.set(VIDEOS_KEY, { ...videos });