【问题标题】:NullInjectorError: No provider for BsDropdownConfigNullInjectorError:没有 BsDropdownConfig 的提供者
【发布时间】:2026-01-15 08:00:02
【问题描述】:

我想使用 ngx-bootstrap 下拉菜单,所以我在 app.module 中导入了 lib

BsDropdownModule.forRoot(),

在我的 html 中,我想尝试文档中的示例

<div class="btn-group" dropdown>
        <button id="button-basic" dropdownToggle type="button" class="btn btn-primary dropdown-toggle"
                aria-controls="dropdown-basic">
          Button dropdown <span class="caret"></span>
        </button>
        <ul id="dropdown-basic" *dropdownMenu class="dropdown-menu"
            role="menu" aria-labelledby="button-basic">
          <li role="menuitem"><a class="dropdown-item" href="#">Action</a></li>
          <li role="menuitem"><a class="dropdown-item" href="#">Another action</a></li>
          <li role="menuitem"><a class="dropdown-item" href="#">Something else here</a></li>
        </ul>
      </div>

我在控制台中遇到了这个错误:

ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[BsDropdownDirective -> BsDropdownConfig]: 
  StaticInjectorError(Platform: core)[BsDropdownDirective -> BsDropdownConfig]: 
    NullInjectorError: No provider for BsDropdownConfig!
NullInjectorError: StaticInjectorError(AppModule)[BsDropdownDirective -> BsDropdownConfig

我尝试导入 BsDropdownConfig 但它不是模块。

有什么我必须导入的想法吗?

【问题讨论】:

  • 嗨。可以分享一下完整的 app.module 吗?

标签: angular dropdown ngx-bootstrap


【解决方案1】:

显然BsDropdownModule 没有提供默认配置,这很奇怪,但您可以手动提供一个,或者在根模块注入器中(在 providers 数组中),或者在组件自己的注入器中使用

providers: [{ provide: BsDropdownConfig, useValue: { autoClose: true } }]

【讨论】:

  • 原来如此,谢谢,它有效
【解决方案2】:

我发现我需要添加以下所需的依赖项。

 "ngx-bootstrap":"", //mention version compatable with your angular version 
  "ngx-intl-tel-input": "",
  "intl-tel-input",
  "google-libphonenumber"

请在 package.json 文件中添加相应版本的依赖项 运行命令: npm 安装 之后导入 NgxIntlTelInputModule 模块

imports: [
    NgxIntlTelInputModule,
],

并在 angular.json 文件中添加 ngx 输入的主题

//keep your existing theme dont remove that.
     "styles": [
                 "", 
                 "./node_modules/intl-tel-input/build/css/intlTelInput.css"
               ],

如果您没有添加 intlTelInput.css 主题,国家下拉菜单将无法仅显示文本输入字段。

【讨论】:

    最近更新 更多