带过滤器的高级搜索-Angularjs
Advanced Search with filter - Angularjs
我正在尝试创建一个具有特定过滤器的高级搜索。目前,当使用filter选项时,所有内容都会被搜索,但我希望它更具体。
我想创建一个下拉列表,让你可以选择搜索名称或地点,而不是搜索所有结果:
<form class="input-group col-md-4 form-inline">
<input type="text" class="form-control" placeholder="Search captures" ng-model="search"/>
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Options <span class="glyphicon glyphicon-cog"></span> </button>
<ul class="dropdown-menu">
<li><input type="radio" name="searchoption" value="All" id="All" checked><label for="all">Search through all</label></li>
<li><input type="radio" name="searchoption" value="Birdname" id="Birdname"><label for="birdname">Search by birdname</label></li>
<li><input type="radio" name="searchoption" value="Place" id="Place"><label for="place">Search by place</label></li>
</ul>
</div>
<span class="input-group-btn">
<button class="btn btn-default" type="button"><span class="glyphicon glyphicon-search"> </span></button>
</span>
</form>
根据所选的单选按钮,我希望filter.search
更改:
<li ng-repeat="capture in captures|filter:search:strict|orderBy:'created_at':true|startFrom:currentPage:10" class="masonry-item clickable">
因此,基本上,我希望用户能够选择一个特定的单选按钮,并根据他选择的内容,搜索特定的结果。
在Angular文档中,它指出我的搜索输入上的ng模型必须是以下之一:
<input type="text" class="form-control" placeholder="Search captures" ng-model="search.$>
<input type="text" class="form-control" placeholder="Search captures" ng-model="search.birdname">
<input type="text" class="form-control" placeholder="Search captures" ng-model="search.place">
不过,根据选中的单选按钮,有没有具体的方法可以更改这些内容?
希望这是清楚的。
很少更改:
-
将输入的
ng-model
更改为search[searchBy]
<input type="text" ng-model="search[searchBy]">
-
为所有单选按钮设置相同的
ng-model
等于searchBy
,并根据搜索条件设置value
,如为所有按钮设置$
,为要筛选出的birdName
在存储在captures
中的对象的birdName
属性中进行搜索。<li><input type="radio" name="searchoption" ng-model="searchBy" value="$" id="All" checked><label for="all">Search through all</label></li> <li><input type="radio" name="searchoption" ng-model="searchBy" value="birdName" id="Birdname"><label for="birdname">Search by birdname</label></li> <li><input type="radio" name="searchoption" ng-model="searchBy" value="place" id="Place"><label for="place">Search by place</label></li>
-
根据
search
中上述单选按钮设置的searchBy
值过滤掉ng-repeat
的最后一次更改<li ng-repeat="capture in captures|filter:search">...</li>
将控制器中searchBy
的初始值设置为等于$
,以在初始页面加载时搜索对象的所有属性,这些属性可以通过从下拉菜单中选择不同的属性来更改。
更多示例请查看现有的postangularjs:动态更改过滤器选项
上面提到的后的Fiddle示例
相关文章:
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 在禁用ng的情况下搜索JSON对象(AngularJS)
- 使用过滤器进行AngularJS搜索
- 使用ng类(AngularJS)搜索JSON对象
- Angularjs从字符串开始搜索
- 带有AngularJS指令的类似Google的搜索框
- Angularjs-分离全局搜索和页面内容
- AngularJS搜索延迟,直到用户输入字段
- 使用AngularJS在SQL数据库中搜索
- 如何在输入中键入4个字符后在AngularJS中搜索
- AngularJS搜索没有'不起作用
- AngularJs 实现搜索功能
- 如何在 angularjs 中存储和检索搜索参数
- Angularjs搜索整个HTML
- 在 AngularJS 中添加复选框以进行搜索
- 使用查询字符串搜索 AngularJS 资源
- 多下拉JSON过滤器搜索AngularJS
- 带过滤器的高级搜索-Angularjs