条件に基づいてモジュールをインポートすることはできますか?角度2のユニバーサルアプリケーションがブラウザではレンダリングされているが、サーバではレンダリングされていない場合にのみ、特に外部モジュールをインポートする。angular universal:ブラウザ専用の動的インポート
この質問は、ブラウザの機能に依存するいくつかのPrimeNGモジュールに関連し、ブラウザでしか表示できません。サーバーレンダリングのカレンダーやその他のコンポーネントがSEOにとって本当に重要ではないという理由で、それらを省略するとよいでしょう。
現在、サーバーレンダリングをオフにすると、カレンダーコンポーネントをレンダリングできます。しかし、以下のコードを私のapp.module.tsに組み込み、サーバーレンダリングをオンにすると、サーバーはbutton.jsで 'ReferenceError:Event is not defined'というエラーを生成します。
import { CalendarModule } from 'primeng/components/calendar/calendar';
@NgModule({
...
imports: [
...,
CalendarModule
]
})
角度によって提供さisBrowser条件があります。
import { isBrowser } from 'angular2-universal';
しかし、私は条件付き輸入のためにそれを使用する方法がわかりません。モジュールのために実際に行う方法はありますか?
isBlasterではなくisPlatformBrowserでこれを行う方法を知っていますか? –
@RaymondtheDeveloper私はisPlatformBrowserがUniversal "Gotchas"セクションで[here](https://www.npmjs.com/package/angular4-aspnetcore-universal)に記載されているように動作すると思います。それ以外はisBrowserと同じでなければなりません。試してみる。 – Rodion
問題はapp.module.ts内で使用したいということです。そこにPLATFORM_IDを注入する方法がわかりません。また、isPlatformBrowserはPLATFORM_IDが必要です。 –