2017-06-14 59 views
1

我使用bootstrap-select向我的Angular应用程序添加了语言选择器。过去它曾经工作过,但在浏览器更新之后,select元素不再可见。我只看到没有选项的标签。在Angular应用程序中未显示bootstrap-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> 

是否有任何已知的问题,使用引导选有角的时候?即使没有任何数据绑定,也不会显示选择框。

我使用:

  • 的jQuery 1.12.4
  • 引导3.3.7
  • 引导选1.12.2
  • 角1.4.7
+0

模板中没有AngularJS处理。它只是引导。 – lin

+0

将jQuery,bootstrap和AngularJS混合使用是个不好的做法。 – lin

+0

我知道,即使我删除了所有的数据绑定,也不会呈现选择框。似乎这里有什么干扰。 – user1438038

回答

1

TL; dr

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


详细答案

原来,使用角和jQuery(这是由自举需要)被广泛气馁,由于different concepts of both libraries(数据绑定与事件驱动)。所以最终,直接使用bootstrap-select在我的Angular应用程序中不是一个选项。

有一个叫做angular-bootstrap-select的角度扩展,它试图克服这个技术问题。但是,GitHub项目标记为DEPRECATED

我发现了一个名为ng-bootstrap-select的叉子,它仍在维护中。虽然,我没有仔细看看这个项目。

现在我正在使用nya-bootstrap-select,这是另一个Angular扩展。它松散地基于最初的引导 - 选择实现,但对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> 

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

相关问题