2017-08-07 222 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; 
     }); 
    }