我有两个array de objetos
由相同的馈送rest
,一个馈送视觉列表,另一个保留响应中带来的原始数据。
我有一个input
类型text
,用作对象包含的任何属性的列表搜索引擎。
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $filter) {
$scope.actividadesShow = [{
id: 1,
nombre: 'Actividad 1',
codigo: 89466,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 2',
codigo: 89714,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 3',
codigo: 89755,
responsable: 'Bender'
}];
$scope.actividades = [{
id: 1,
nombre: 'Actividad 1',
codigo: 089466,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 2',
codigo: 089714,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 3',
codigo: 089755,
responsable: 'Juan'
}];
$scope.$watch('buscarActividad', function(value){
if (value != undefined) {
$scope.actividadesShow = $filter('filter')($scope.actividades, value);
}
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<input type="text" ng-model="buscarActividad">
<ul>
<li ng-repeat="actividad in actividadesShow track by $index">
{{ actividad.codigo }} - {{ actividad.nombre }}
</li>
</ul>
</div>
因此,系统工作正常,我可以按负责人搜索,它会向我显示分配给负责人的人。
问题是我需要制作一个搜索引擎来搜索用逗号分隔的多个值,而这就是我不知道该怎么做的地方,我尝试传递一个array
al$filter
但它不管用多么努力都没有用我在谷歌搜索我不明白他们提出的解决方案,或者他们的解决方案过于广泛。
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $filter) {
$scope.actividadesShow = [{
id: 1,
nombre: 'Actividad 1',
codigo: 89466,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 2',
codigo: 89714,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 3',
codigo: 89755,
responsable: 'Bender'
}];
$scope.actividades = [{
id: 1,
nombre: 'Actividad 1',
codigo: 089466,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 2',
codigo: 089714,
responsable: 'Bender'
}, {
id: 1,
nombre: 'Actividad 3',
codigo: 089755,
responsable: 'Juan'
}];
$scope.$watch('buscarActividad', function(value){
if (value != undefined) {
$scope.actividadesShow = $filter('filter')($scope.actividades, value.split(', '));
}
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<input type="text" ng-model="buscarActividad">
<ul>
<li ng-repeat="actividad in actividadesShow track by $index">
{{ actividad.codigo }} - {{ actividad.nombre }}
</li>
</ul>
</div>
那么如何将多个值传递给过滤器呢?有可能还是我应该使用其他方法?
您可以执行以下操作:
buscarActividad
此示例示例对任何框架都很有用,因为它只使用本机 Javascript 函数。
您可以与第一种情况完全相同,但使用 Array 类的 filter 函数和自定义函数进行比较: