我正在做Angular4项目。我在本教程之后集成了服务器端渲染。一切都有效,除了一件事。
从API 服务器解析数据后,我需要更改页面的元标记。我的意思是像这样解决:
RouterModule.forChild([
{
path: ':id',
component: NewsCardComponent,
resolve: {
card: NewsCardResolver
}
}
])
在当前实现中,服务器发送呈现的页面而不解析数据,解析请求发生在客户端上。
在将结果发送到客户端之前,当在服务器渲染上获取数据时,任何人都可以给我建议如何实现行为吗?
我注意到您的路由没有提供程序,但您正在使用解析。
所以我想你的NewsCardResolver是一个@Injectable服务,至少实现了像这样 https://www.codementor.io/max_diachenko/angular-2-route-resolves--typescript-du1089pdm 的Resolve,或者这个 https://scotch.io/courses/routing-angular-2-applications/data-and-resolve
@Injectable()
export class MyResolver implements Resolve<class> {
constructor(private service: Service, private router: Router) {}
resolve(route: ActivatedRoute): Promise<Data> { ... }
最后在组件初始化上获取数据:
ngOnInit() {
this.route.data
.subscribe((data: Data ) => {
let result = data;
});
}