bootstrap-select 的选项未显示在 Angular 应用程序中

Options of bootstrap-select not displayed in Angular application

我使用 bootstrap-select 添加了一种语言 select 或到我的 Angular 应用程序。它过去曾经有效,但在浏览器更新后,select 元素不再可见。我只看到没有选项的标签。

<div class="row">
  <div class="col-md-12">
    <label for="language_select">Language:</label>
    <select id="language_select" class="selectpicker" data-width="fit">
      <option value="en" data-content="<span class='flag-icon flag-icon-gb'></span> English"></option>
      <option value="de" data-content="<span class='flag-icon flag-icon-de'></span> Deutsch"></option>
    </select>
  </div>
</div>

bootstrap-select 与 Angular 一起使用时是否存在任何已知问题?即使没有任何数据绑定,select 框也不会显示。

我正在使用:

tl;博士

Angular 扩展 nya-bootstrap-select 为我解决了这个问题。该模块不依赖于外部 JavaScript 文件,并克服了 Angular 和 jQuery 中不同概念的问题(数据绑定与事件驱动)。


详细解答

事实证明,由于 different concepts of both libraries(数据绑定与事件驱动)。所以最终,在我的 Angular 应用程序中直接使用 bootstrap-select 不是一种选择。

有一个名为 angular-bootstrap-select 的 Angular 扩展试图解决这个技术问题。但是,GitHub 项目被标记为 DEPRECATED

我找到了一个叫做 ng-bootstrap-select 的分支,它仍在维护中。虽然,我没有仔细看那个项目。

我现在使用 nya-bootstrap-select,这是另一个 Angular 扩展。它松散地基于初始 bootstrap-select 实现,但不依赖于 jQuery 和 Bootstrap 的 JavaScript代码。您只需要包含 Bootstrap CSS 文件。


我的代码现在看起来有点像这样:

<div class="row">
  <div class="col-md-8"></div>
  <div class="col-md-4">
    <label for="language_select">Language:</label>
    <ol id="language_select" class="nya-bs-select">
      <li class="nya-bs-option" value="en">
        <a><span class="dummy-wrapper"><span class="flag-icon flag-icon-gb"></span> English</span></a>
      </li>
      <li class="nya-bs-option" value="de">
        <a><span class="dummy-wrapper"><span class="flag-icon flag-icon-de"></span> Deutsch</span></a>
      </li>
    </ol>
  </div>
</div>

组合框从一开始就初始化,选择不同的项目会立即切换语言,并且在第一次加载页面时会自动预select当前用户语言。