如何将自定义搜索条件添加到智能表?
通常,我们设置搜索这样的列:
<input st-search="description" placeholder="Description..." type="search"/>
但有没有办法使用自定义功能进行搜索?
使用st-set-filter
会改变st-search
的行为,这不是我想要的。
现在,我在构建表格行时添加了条件:
<tr ng-repeat="request in r.displayedRequests"
ng-if="r.isInArray(r.developersList, request.developers && (request.status != 'CAN')">
<td>{{request.id}}</td>
<td>{{request.description}}</td>
<!-- ... -->
</tr>
执行此操作会过滤正确的行,但这会导致分页失败,因为displayedRequests
未像使用st-search
时那样更新。
那么,如何使用我的控制器变量来添加条件来过滤我的表格行?
(并且仍然可以使用st-search
在不同的文字输入上进行全局或列搜索过滤)
答案 0 :(得分:0)
这样做会过滤正确的行,但这会使分页失败
使用ng-if
时,您不应使用ng-repeat
过滤表格行。 ng-repeat表达式可以使用自己的过滤器参数,并且可以接受您自己的自定义过滤器。
ng-repeat="item in vm.items | filter: thoseIDislike"
这也会破坏你的分页,所以使用st-safe-src
指令保存数据的安全副本并重复它
但有没有办法使用自定义功能进行搜索?
是的,您可以在ng-change
上使用input
,当您更改输入的模型值时,该功能将会运行(以防止它在每次击键时运行,i& #39; m使用ng-model-option
的去抖属性
<input st-search="firstName"
placeholder="first name"
ng-model="fname"
ng-model-options="{ debounce: 1000 }"
ng-change="alertMe(fname)">
在控制器中:
$scope.alertMe = function(message) {
if (message.length>0) {
alert(message);
}
}