我有一个角度应用程序,其中一些功能被导出到单独的模块。这是因为我的客户可以选择他们想要或不想要的功能。例如如果其中一个客户端不需要聊天功能,那么我只需从ChatModule
中删除app.module.ts
。一切正常,除了ChatModule
有一个ChatComponent
,它包含在根app.component.html
中,因此,如果我只从ChatModule
中删除app.module.ts
导入, <chat></chat>
标签保留在app.component.html
中。在不从模板中删除标签的情况下,打开/关闭此类模块的最佳方法是什么?
app.module.ts
...
@NgModule({
imports: [
// ChatModule - module that I doesn't want to include
],
declarations: [
],
providers: [
],
})
app.component.html
<app-content>
<chat></chat> // Tag of the ChatComponent
</app-content>
答案 0 :(得分:0)
最好的方法是:
SharedModule
(或其他)。 ChatComponent
)ChatModule
不会出现任何问题。 SharedService
中创建一个SharedModule
,并为ChatModuleIncluded
和其他变量创建变量。 Chat
变量值上的ChatModuleIncluded
标签。答案 1 :(得分:0)
如果确定没有其他问题,可以使用NO_ERRORS_SCHEMA(https://angular.io/api/core/NO_ERRORS_SCHEMA),如下所示。
使用此架构,Angular不会抛出错误说明元素 找不到匹配的
<Chat></Chat>
。
@NgModule({
imports: [
// modiules
],
declarations: [
// components and pipes
],
providers: [
// providers
],
exports: [
// exports
],
bootstrap: [AppComponent],
schemas: [NO_ERRORS_SCHEMA]
})