Angular4/Node.jsを使用してSEOを少し試してみたが、挑戦してきた。クライアント側非同期。サーバー側のレンダリングでのリクエスト
アンギュラユニバーサルでは、サーバ側のレンダリングを行うことができるので、ページにブラウザが表示される前にHTMLにメタキーワード、タイトル、画像URLなどを挿入できます。問題は、ある時点で、少なくともクライアント側でのものを非同期的に処理できるようにしたいということです。いくつかのJSONデータを取得したり、Angularクリックイベントをキャッチしたりすることもできます。
以下の例を使用している間、私はそのようなことをすることはできないようです。
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
});
}
}
サーバ側は、ユニバーサルを使用してレンダリングするときに、このようなものが可能である方法はありませんか?あなたはどうやってこれを実装しますか?
乾杯!
3.正解でした:)。私のバンドルはアプリケーションには含まれておらず、エラーも発生していませんでした。実際に意図したとおりに動作するはずであることを述べてくれてありがとう、正しい方向に私を導いたもの。 – iMe