У меня есть массив ($ scope.names), который содержит некоторые простые объекты, которые я применяю для очистки значений от диакритики. Когда я печатаю с консолью это значение, это показывает мне хорошо. Например: «La 45 km nord-vest de Bucureşti» будет «La 45 km nord-vest de Bucuresti».Фильтр AngularJS не работает
Я применяю этот метод и для другой переменной ($ scope.searchText), чтобы сделать совместимость с возможностью поиска. Опять же, все в порядке.
Проблема в том, что даже я стандартизую, что значение двух переменных, фильтр не работает. Если я попытаюсь найти «Bucures», он не покажет мне объект, содержащий чистое слово «Bucures» (оригинальное слово «Bucureş») ...
Что я делаю неправильно?
Полный код здесь: http://plnkr.co/edit/D5WfiOGd5I3QfcNVdOmr?p=preview
Угловое сценарий является то, что:
var app = angular.module('myApp', []);
app.controller('namesCtrl', function($scope, $filter) {
$scope.names = [
{
"adresa": "Str. Calafatului nr. 10",
"latitudine": "44.1",
"localitatea": "GALICEA MARE",
"longitudine": "23.3",
},
{
"adresa": "bd. Elisabeta nr. 1",
"latitudine": "44.170901",
"localitatea": "CONSTANŢA",
"longitudine": "28.663195",
},
{
"POTLOGI": "La 45 km nord- vest de Bucureşti",
"latitudine": "44.564319",
"localitatea": "POTLOGI",
"longitudine": "25.588091",
}
]
$scope.searchText = "";
$scope.searchCleanText = "";
$scope.myFilter = function (items) {
for (var i = 0; i < items.length; i++) {
var boolChk = false;
angular.forEach(items[i], function (value, key) {
var cleanValue = removeDiacritics(value).toLowerCase();
if (boolChk === false) {
boolChk = cleanValue.includes($scope.searchCleanText);
}
console.log(value + ' ' + cleanValue.includes($scope.searchCleanText) + '\tboolChk = ' + boolChk);
return boolChk;
});
}
}
$scope.$watch('searchText', function() {
$scope.searchCleanText = removeDiacritics($scope.searchText).toLowerCase();
$scope.showItems = $filter('filter')($scope.names, $scope.searchText, $scope.myFilter($scope.names));
console.log($scope.showItems);
});
});
Спасибо за помощь. Он работает, но теперь я нашел лучшие подходы. Я должен использовать функцию (фактический, ожидаемый) 'для возврата логического значения. – Doro