检查这个jsFiddle:http://jsfiddle.net/mystikacid/hajo0c33/
我在输入框中使用关键字来过滤要显示的对象。只要我输入一个关键字,这个工作正常。但是,如果我尝试按两个关键字进行过滤(例如,我的查询是 - '变形金刚150V'因为我想查找使用150V的变形金刚,它不显示任何结果。
HTML
<div ng-app="myApp">
<div ng-controller="myCtrl">
<input type='text' ng-model='query' placeholder = "Search" />
<div ng-repeat="product in products | filter : query">
{{product.name}} |
{{product.family}} |
{{product.amperage}} |
{{product.volt}}
</div>
</div>
的Javascript
var myApp = angular.module('myApp', []);
myApp.controller('myCtrl', function($scope){
$scope.products = [
{
name : '9T21S1050',
family : 'Transformer',
amperage : '20A',
volt : '150V'
},
{
name : '9T85B3092',
family : 'Transformer',
amperage : '15A',
volt : '200V'
},
{
name : 'AEU3182RCXAXB4',
family : 'Panel Board',
amperage : '30A',
volt : '250V'
},
{
name : 'AQU1182RCXAXB4',
family : 'Panel Board',
amperage : '25A',
volt : '300V'
},
{
name : 'AQU1422RCXAXT1',
family : 'Panel Board',
amperage : '35A',
volt : '150V'
}
]
});
我知道我需要为过滤器编写一个函数,但到目前为止我还没能使它工作。如果您也希望看到此功能,请与我们联系。 感谢。
答案 0 :(得分:8)
我正在创建一个新的过滤器,如果两个值都存在,它将提供产品。
var m = angular.module('yourModuleName');
m.filter('advancefilter', ['$filter', function($filter){
return function(data, text){
var textArr = text.split(' ');
angular.forEach(textArr, function(test){
if(test){
data = $filter('filter')(data, test);
}
});
return data;
}
}]);