我有一个 Angular 项目,它使用了 bootsnipp(Bootstrap 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);
});
}
2条答案
按热度按时间xj3cbfub1#
请尽量避免在Angular中使用jQuery。Angular有一种方法来完成这些任务。首先你需要了解在 Bootstrap 中下拉菜单是如何工作的。当你点击下拉按钮或链接时,它只是在下拉菜单上添加一个类来显示菜单,类名是“show”。现在你知道了它是如何工作的。现在是时候实现了。按照以下步骤来完成你的任务。
1.在组件中声明一个toggleFlag命名变量.
公共切换标志=假;
1.现在,在下拉菜单按钮上创建一个click事件。这将调用组件中的一个方法。
搜寻范围
1.现在在组件中创建show方法此方法将更改toggleFlag变量
如果您有任何问题,请与我们联系。}
1.现在可以在模板中使用toggleFlag变量了。
下拉菜单:切换标志}”
希望能有所帮助
pn9klfpd2#
您可以尝试使用此ngx-bootstrap。
https://valor-software.com/ngx-bootstrap/#/dropdowns