是否可以根據條件導入模塊?只有在角色2通用應用程序在瀏覽器中呈現但不在服務器中時,纔會導入外部模塊。角度通用:僅針對瀏覽器的動態導入
此問題與某些依賴瀏覽器功能且只能在瀏覽器中呈現的PrimeNG模塊相關。在服務器渲染中忽略它們會很好,因爲日曆和其他組件對於搜索引擎優化並不重要。
目前我可以渲染日曆組件,如果關閉服務器渲染。但是,當我將下面的代碼包含在我的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';
但我不知道如何使用它有條件進口。真的有辦法爲模塊做到這一點嗎?
你知道如何用isPlatformBrowser而不是isBrowser做到這一點嗎? –
@RaymondtheDeveloper我認爲isPlatformBrowser應該在Universal的「Gotchas」部分中描述[這裏](https://www.npmjs.com/package/angular4-aspnetcore-universal)。其他所有內容應與isBrowser相同。試一試。 – Rodion
問題是我想在app.module.ts中使用它。我不知道如何在那裏注入PLATFORM_ID。isPlatformBrowser需要PLATFORM_ID才能工作。 –