2017-08-07 189 views
2

我正在开发Angular4项目。我在这个tutorial之后集成了服务器端渲染。除了一件事,一切都有效。Angular4服务器端渲染resolvind数据

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

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

在当前实现中,服务器发送呈现的页面没有解决数据,解析请求的客户端出现。

任何人都可以给我建议如何在服务器渲染时获取数据时如何实现行为,然后将结果发送给客户端?

+0

你有没有找到一个解决方案?我遇到了同样的问题。 – ObsDev

回答

0

我注意到你没有提供你的路线,但你使用的是解决方案。

所以我想你的NewsCardResolver是一个@Injectable服务,它至少实现了这样的解决方案https://www.codementor.io/max_diachenko/angular-2-route-resolves--typescript-du1089pdm?这还是一个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; 
     }); 
    }