客户端异步。请求与服务器端渲染

问题描述:

我以为我会试用一点与SEO使用Angular4/Node.js,但已经来过一个挑战。客户端异步。请求与服务器端渲染

Angular Universal使我有可能做服务器端渲染,所以我可以让我的元关键字,标题,图像网址等注入到HTML之前,我的网页浏览器 - 很棒!现在的挑战是,在某些时候,我希望至少能够在客户端异步执行一些东西,例如。获取一些JSON数据,甚至捕获一个Angular click事件。

我似乎无法做到这样的东西,而使用下面的例子。

home.component.ts

import { Component, OnInit } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 

@Component({ 
    selector: 'home', 
    template: `<button (click)="fetch();">Fetch some json</button>`, 
    styleUrls: ['./home.component.scss'] 
}) 
export class HomeComponent implements OnInit { 

    constructor(
    private _http: Http 
) {} 

    ngOnInit() {} 

    public fetch(){ 
    console.log("Clicked");    // Does not happen 

    this._http.get('./i18n/da.json') 
    .subscribe((r: Response) => { 
     console.debug(r.json());   // Also not happening 
    }); 
    } 
} 

有什么没有办法像这样使用通用的服务器端渲染时将有可能?你们会如何执行此操作?

干杯!

我真的不知道你是什么意图,但我认为这可能是其中之一:

  1. 你想要做一些东西,当用户点击服务器端渲染按钮角接管之前?那么你正在寻找Preboot
  2. 您想在服务器端呈现期间从服务器获取数据,然后在客户端使用这些数据?那么你可能正在寻找TransferState再水化API。

  3. 您的应用程序出现问题,它根本没有响应按钮点击。即使使用SSR,点击仍然可以使用。检查控制台是否有错误。

+0

3.是正确的答案:)。我的软件包未包含在应用程序中,并且未产生任何错误。感谢你说它应该按照预期工作,那是什么使我朝着正确的方向发展。 – iMe