javascript-装饰器不支持Angular 6 Prod Function调用,但已调用“ ..Module”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-装饰器不支持Angular 6 Prod Function调用,但已调用“ ..Module”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1956字,纯文字阅读大概需要3分钟。
内容图文
尝试使用angular2-json-schema-form&时出现此错误内置产品
ERROR in Error during template compile of ‘DemoModule’
Function calls are not supported in decorators but ‘JsonSchemaFormModule’ was called.
I found out that the the error comes from:
@NgModule({
declarations: [ AceEditorDirective, DemoComponent, DemoRootComponent ],
imports: [
BrowserModule, BrowserAnimationsModule, FlexLayoutModule, FormsModule,
HttpClientModule, MatButtonModule, MatCardModule, MatCheckboxModule,
MatIconModule, MatMenuModule, MatSelectModule, MatToolbarModule,
RouterModule.forRoot(routes),
NoFrameworkModule, MaterialDesignFrameworkModule,
Bootstrap3FrameworkModule, Bootstrap4FrameworkModule,
JsonSchemaFormModule.forRoot( // the source of the Error
NoFrameworkModule,
MaterialDesignFrameworkModule,
Bootstrap3FrameworkModule,
Bootstrap4FrameworkModule
)
],
bootstrap: [ DemoRootComponent ]
})
在库的源代码中,他们使用如下代码:
export class JsonSchemaFormModule {
static forRoot(...frameworks): ModuleWithProviders {
const loadFrameworks = frameworks.length ?
frameworks.map(framework => framework.forRoot().providers[0]) :
[{ provide: Framework, useClass: NoFramework, multi: true }];
return {
ngModule: JsonSchemaFormModule,
providers: [
JsonSchemaFormService, FrameworkLibraryService, WidgetLibraryService,
...loadFrameworks
]
};
}
}
当我删除变量loadFramworks时,我没有出现错误,但是似乎无法在providers属性中注入框架
解决方法:
另一个答案说这是AOT的问题.在@NgModule之类的装饰器中调用的函数必须适合于编译器的静态分析.确切的要求是棘手的,因为它们取决于使用的库和工具的多种因素和版本.
在您拥有的库中有违规功能时,就有行动的余地.例如,以我为例,我决定从函数中删除所有局部变量,将其简化为一个复杂表达式的单个return语句,除了可以正常工作的RouterModule.forRoot之外,没有其他函数调用.例如,参见Angular Flex Layout项目中的the commit “make withConfig AOT compatible”.有人评论了Angular GitHub问题上的tsconfig.lib.json中的angular编译器选项.
但是,就您而言,您似乎无法控制有问题的模块和功能.您绝对应该将其报告给模块的开发人员.
内容总结
以上是互联网集市为您收集整理的javascript-装饰器不支持Angular 6 Prod Function调用,但已调用“ ..Module”全部内容,希望文章能够帮你解决javascript-装饰器不支持Angular 6 Prod Function调用,但已调用“ ..Module”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。