问题描述
我想让用户在3个不同的搜索字段中搜索多个值。当前,它正在搜索值nombre
,我想添加另外两个字段以查找值codigo_interno
和codigo_comercial
。
这些是我拥有的<DIVs>
:
<div class="col-md-3">
<select ng-model="categoria" class="form-control" ng-options="item for item in categorias" placeholder="Filtrar por Categoria"/>
<option value="" disabled selected hidden>Filtrar por Categoria</option>
</select>
</div>
<div class="col-md-3 search right">
<input class="form-control has-feedback" ng-model="search1" type="text" placeholder="Buscar por Artículo"/>
</div>
<div class="col-md-3 search right">
<input class="form-control has-feedback" ng-model="search2" type="text" placeholder="Buscar por Código Interno"/>
</div>
<div class="col-md-3 search right">
<input class="form-control has-feedback" ng-model="search3" type="text" placeholder="Buscar por Código Comercial"/>
</div>
您可以看到我有一个下拉过滤器,但接下来的3个必须为空字段,允许用户查找nombre
,codigo_interno
和codigo_comercial
。
正在为此工作的开发人员键入了以下功能:
$scope.show = function (precio){
cumple_categoria = $scope.categoria == null || precio.articulo.categoria == $scope.categoria;
regexp = new RegExp($scope.search1,'i');
data = precio.articulo.codigo_interno.search(regexp);
return data != -1 && cumple_categoria;
}
它确实适用于值nombre
,但是,如何使其他2个字段查找其他值?有没有办法对nombre
以及codigo_interno
和codigo_comercial
进行相同的过滤器字段搜索?
谢谢。
解决方法
解决方案很简单:
$scope.show = function (precio){
cumple_categoria = $scope.categoria == null || precio.articulo.categoria == $scope.categoria;
regexp1 = new RegExp($scope.search1,'i');
regexp2 = new RegExp($scope.search2,'i');
regexp3 = new RegExp($scope.search3,'i');
data1 = precio.articulo.nombre.search(regexp1);
data2 = precio.articulo.codigo_interno.search(regexp2);
data3 = precio.articulo.codigo_comercial.search(regexp3);
return data1 != -1 && data2 != -1 && data3 != -1 && cumple_categoria;
}
我只需要为RegExp添加2个变量,为数据添加2个变量并验证它们,就这么简单。