Angular ngx引导/tabs 3.1.1在内部模块中提供StaticInjectorError(AppModule)[TabHeadingDirective->;TabDirective]
我试图在angular 6项目的内部模块中使用ngx引导/tabs组件,但在console中出现此错误,并导致渲染崩溃:Angular ngx引导/tabs 3.1.1在内部模块中提供StaticInjectorError(AppModule)[TabHeadingDirective->;TabDirective],angular,ngx-bootstrap,Angular,Ngx Bootstrap,我试图在angular 6项目的内部模块中使用ngx引导/tabs组件,但在console中出现此错误,并导致渲染崩溃: ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[TabHeadingDirective -> TabDirective]: StaticInjectorError(Platform: core)[TabHeadingDirective -> TabDir
ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[TabHeadingDirective -> TabDirective]:
StaticInjectorError(Platform: core)[TabHeadingDirective -> TabDirective]:
NullInjectorError: No provider for TabDirective!
Error: StaticInjectorError(AppModule)[TabHeadingDirective -> TabDirective]:
StaticInjectorError(Platform: core)[TabHeadingDirective -> TabDirective]:
NullInjectorError: No provider for TabDirective!
...
如果我在app.module.ts中导入此组件,一切正常,当我尝试在子模块(称为共享)中使用它时,我会在顶部看到错误。
模块的配置文件(shared.module.ts)如下所示:
...
import { TabsModule } from 'ngx-bootstrap/tabs';
@NgModule({
imports: [
...
TabsModule,
...
],
})
export class SharedModule { }
我不知道如何解决它,有人能帮我吗?您需要在导入模块的末尾添加.forRoot(),就像这样:
TabsModule.forRoot()
更新
您还需要将SharedModule导入根模块,例如AppModule您必须验证TabModule中没有命名为类似的变量或属性 我的情况是: 我有一个自定义组件,它有一个属性
@Input()选项卡:string='0'代码>参数以选择选项卡集中的选项卡
ERROR Error: StaticInjectorError(AppModule)[TabDirective -> TabsetComponent]:
StaticInjectorError(Platform: core)[TabDirective -> TabsetComponent]:
NullInjectorError: No provider for TabsetComponent!
at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:691) ...
这是我的自定义组件:
<my-component [datos]="datos" [tab]="tab"></my-component>
和@Input()tabId:string='0'代码>
我还将ngx引导的TabModule
更改为ng引导的NgbModule
这对我来说是个难题。你的问题是什么?我也尝试过这样做,但没有成功,这给了我同样的错误。Seams应该与TabDirective的提供者相关。也许我应该为我正在使用的Tabs组件声明一些提供者…你能更新问题吗?你是如何尝试在组件中使用它的,以及NgModule看起来如何?dince你在问题中已经将它剥离了。我怀疑你没有在一个模块中正确包装东西,我刚刚注意到模块的名称,你是否已将SharedModule导入根模块,例如“AppModule”?你是否懒得在应用程序中加载任何东西?启动Angular 6依赖项注入的行为不同,最简单的方法是将Tabs forRoot()模块导入到您计划使用相同问题的模块中-除了BsDropdownModule。。。(其他非valor模块工作…)我也遇到了同样的问题,多亏了您的回复,我才得以解决。非常感谢你。
<my-component [datos]="datos" [tabId]="tabId"></my-component>