【问题标题】:Angular4 server side rendering with resolvind data使用解析数据的 Angular4 服务器端渲染
【发布时间】:2018-01-14 19:35:24
【问题描述】:

我正在开发 Angular4 项目。我在tutorial 之后集成了服务器端渲染。一切正常,除了一件事。

从 API 服务器解析数据后,我需要更改页面的元标记。我的意思是这样解决:

RouterModule.forChild([
            {
                path: ':id',
                component: NewsCardComponent,
                resolve: {
                    card: NewsCardResolver
                }
            }
        ])

在当前实现中,服务器发送渲染页面而不解析数据,解析请求发生在客户端。

谁能给我建议如何实现行为,当在服务器渲染上获取数据时,在结果发送到客户端之前?

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题。

标签: angular resolve server-rendering platform-server


【解决方案1】:

我注意到您的路线没有提供者,但您正在使用 resolve。

所以我猜你的 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;
      });
  }

【讨论】:

    猜你喜欢
    • 2017-11-22
    • 2018-01-19
    • 1970-01-01
    • 2018-01-16
    • 2017-09-06
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    相关资源
    最近更新 更多