Ich versuche, durch mehrere Eigenschaften in Angular zu filtern. Ich bin in der Lage, durch eine Eigenschaft leicht zu filtern, indem ich einen eckigen filter:{ title: searchString }
benutze, aber um durch mehrere Eigenschaften zu filtern ... ich schuf meinen eigenen kundenspezifischen Filter, der versucht, die Suchzeichenkette durch irgendwelche der Eigenschaften im Feld zusammenzubringen.filterung durch 2 Eigenschaften mit benutzerdefinierten Filter angularjs
Was ich tun müssen, ist:
Wenn John Wayne
durchlaufen wird .. es zeigt John Wayne
aber wenn nur John
oder nur Wayne
durch ... Es zeigt immer noch geführt wird John Wayne. Ähnliches gilt für n w
seit John
endet mit einem n
und subTitle
beginnt mit einem w
PS:
<input type="text" ng-model="searchString">
<div ng-repeat="tel in arr1 | customFilter: searchString:['title','subTitle']"></div>
JS:
$scope.arr1 = [
{title: 'John', subTitle:'Wayne'}
{title: 'Barry'}
];
.filter('customFilter',[ function() {
return function(items, searchText, attrs) {
var filtered = [];
var filteredItems = items.map(function(item) {
angular.forEach(attrs, function(attr) {
if (item.hasOwnProperty(attr)) {
filtered.push(item);
}
});
});
return filtered;
};
}])
ich nur ein ng-Modell
HTML haben
Mein Problem ist, dass ich einen Fehler bekomme oder sagen:
Duplikate in einem Repeater sind nicht erlaubt. Verwenden Sie den 'track by'-Ausdruck zu , um eindeutige Schlüssel anzugeben. Repeater: tel in arr1
Sie haben einen Fehler im Namen des Filters: customfilter in Ihrem Filternamen und custommFilter in Ihrem HTML –
@ManuelObregozo hoppla .. Das war ein Tippfehler. Versehentlich eingefügt, dass in der Post, aber das ist nicht das Problem – user4756836
Ich bekomme immer noch, was es die Idee des Filters, was ist die Ausgabe, von Ihrem Array? –