Bootstrap 引导下拉菜单在Angular 中不起作用

2vuwiymt  于 2022-12-07  发布在  Bootstrap
关注(0)|答案(2)|浏览(172)

我有一个 Angular 项目,它使用了 bootsnippBootstrap snippets)中的 dropdown。我遇到的问题是,这个下拉列表不能与搜索栏一起使用。
//HTML格式

<div class="input-group">
  <div class="input-group-btn search-panel">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
      <span id="search_concept">Search In</span> <span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#"><i class="fa fa-th" aria-hidden="true"></i> All Category</a></li>
      <li><a href="#"><i class="fa fa-laptop" aria-hidden="true"></i> IT Solutions</a></li>
      <li><a href="#"><i class="fa fa-paint-brush" aria-hidden="true"></i> Design and Multimedia</a></li>
      <li><a href="#"><i class="fa fa-globe" aria-hidden="true"></i> Social Media and Marketing</a></li>
    </ul>
  </div>
  <input type="hidden" name="search_param" value="all" id="search_param">         
  <input type="text" class="form-control" name="x" placeholder="Enter search keyword here">
  <span class="input-group-btn">
    <button class="btn btn-default" type="button"><span class="glyphicon glyphicon-search"></span></button>
  </span>
</div>

//JS中

ngAfterViewInit(){
  $('.search-panel .dropdown-menu').find('a').click(function(e) {
    e.preventDefault();
    var param = $(this).attr("href").replace("#","");
    var concept = $(this).text();
    $('.search-panel span#search_concept').text(concept);
    $('.input-group #search_param').val(param);
  });
}
xj3cbfub

xj3cbfub1#

请尽量避免在Angular中使用jQuery。Angular有一种方法来完成这些任务。首先你需要了解在 Bootstrap 中下拉菜单是如何工作的。当你点击下拉按钮或链接时,它只是在下拉菜单上添加一个类来显示菜单,类名是“show”。现在你知道了它是如何工作的。现在是时候实现了。按照以下步骤来完成你的任务。
1.在组件中声明一个toggleFlag命名变量.
公共切换标志=假;
1.现在,在下拉菜单按钮上创建一个click事件。这将调用组件中的一个方法。
搜寻范围
1.现在在组件中创建show方法此方法将更改toggleFlag变量
如果您有任何问题,请与我们联系。}
1.现在可以在模板中使用toggleFlag变量了。
下拉菜单:切换标志}”
希望能有所帮助

pn9klfpd

pn9klfpd2#

您可以尝试使用此ngx-bootstrap。
https://valor-software.com/ngx-bootstrap/#/dropdowns

相关问题