是否可以根据条件导入模块?只有在角色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才能工作。 –