angular – inject()必须从注入上下文中调用
发布时间:2020-12-17 17:24:18 所属栏目:安全 来源:网络整理
导读:我试图将我的Angular应用程序导出为npm模块以供其他应用程序使用,但遇到了一些困难.我无法在互联网上的任何其他地方找到此错误,而且我的智慧结束了. 我按照本教程:https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-an
我试图将我的Angular应用程序导出为npm模块以供其他应用程序使用,但遇到了一些困难.我无法在互联网上的任何其他地方找到此错误,而且我的智慧结束了.
我按照本教程:https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e 我使用ng-packagr将我的应用程序导出为npm模块.我可以从准系统测试应用程序上的本地文件夹成功安装它,但无法让它显示我的应用程序. 错误: AppComponent.html:1 ERROR Error: inject() must be called from an injection context at inject (core.js:1362) at ChangeStackService_Factory (template-wiz.js:2074) at _callFactory (core.js:8223) at _createProviderInstance (core.js:8181) at resolveNgModuleDep (core.js:8156) at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:8849) at resolveDep (core.js:9214) at createClass (core.js:9094) at createDirectiveInstance (core.js:8971) at createViewNodes (core.js:10191) template-wiz.module.ts(正在导出的模块) import { NgModule,ChangeDetectorRef,ComponentFactoryResolver } from '@angular/core'; import { TemplateWizComponent } from './template-wiz.component'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { BlockListDirective } from './Directives/block-list.directive'; import { TemplateItemsDirective } from './Directives/template-items.directive'; import { ContextMenuComponent,SeperatorComponent,DragBoxComponent,SnapLineComponent,PropertiesComponent,ToolboxComponent } from './Components' import { AddressBlockComponent,TextBlockComponent,ImageBlockComponent,DataBlockComponent } from './Data-Blocks'; import { BlockFactoryService,BlockRegistryService,DisplayInfoService,MouseClickService,SavingService,SnapService,TextHelperService,UserModeService } from './Services'; import { PageContextMenuComponent } from './Components/page-context-menu/page-context-menu.component'; import { CamelToWordsPipe } from './Pipes/camel-to-words.pipe'; import { PdfPublisherService } from './Services/pdf-publisher/pdf-publisher.service'; import { GradientBlockComponent } from './Data-Blocks/gradient-block/gradient-block.component'; import { PropToTypePipe } from './Pipes/prop-to-type.pipe'; import { ShapeBlockComponent } from './Data-Blocks/shape-block/shape-block.component'; import { CommonModule } from '@angular/common'; import { ModuleWithProviders } from '@angular/compiler/src/core'; @NgModule({ imports: [ CommonModule,FormsModule,HttpClientModule ],entryComponents: [ AddressBlockComponent,ContextMenuComponent,GradientBlockComponent,PageContextMenuComponent,ShapeBlockComponent,TextBlockComponent ],declarations: [ TemplateWizComponent,DataBlockComponent,AddressBlockComponent,BlockListDirective,TemplateItemsDirective,ToolboxComponent,CamelToWordsPipe,PropToTypePipe,ShapeBlockComponent ],providers: [ BlockFactoryService,UserModeService,PdfPublisherService ],//bootstrap: [TemplateWizComponent],exports: [ TemplateWizComponent ] }) export class TemplateWizModule { static forRoot(): ModuleWithProviders { return { ngModule: TemplateWizModule,providers: [ ComponentFactoryResolver ] } } } app.module.ts(使用我的模块的裸骨测试应用程序) import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { AppComponent } from './app.component'; import { TemplateWizModule } from 'template-wiz'; @NgModule({ declarations: [ AppComponent,],imports: [ BrowserModule,TemplateWizModule.forRoot(),providers: [],bootstrap: [AppComponent] }) export class AppModule { } 任何帮助或指示都将不胜感激,谢谢. 解决方法
我有同样的错误.
我发现我从@ angular / core导入Inject而不是@ angular / core / testing. 希望有所帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |