Прежде всего, позвольте мне упомянуть, что я новичок в AngularJS, а также в программировании.
Моя ситуация такова:
Я имею дело с более чем 50k записями, которые я извлекаю из базы данных SQL.
Я должен показать эти записи на веб-платформе после применения поиска / фильтра к этим записям.
Итак, я провел некоторое исследование по этому вопросу и пришел к выводу, что путь должен быть следующим:
SQL> PHP> JSON> ANGULARJS.
Я получил все это, дело в том, что ng-repeat отправляет все в браузер, и я хочу отфильтровать результаты и затем распечатать их с помощью ng-repeat.
Я пытался реализовать своего рода фильтр, но я не могу решить его.
Код выглядит так:
ЯШ:
var app = angular.module('myApp' ,[]);
app.controller('MainCtrl', function($scope, $http)
{
$http.get("http:source.php")
.then(function(response)
{
$scope.materiale = response.data.records;
});
});
app.filter('filtruCautare', function () {
return function (items, filtru) {
var filtered = [];
var filtruMatch = new RegExp(filtru, 'i');
for (var i = 0; i < items.length; i++) {
var item = items[i];
if (filtruMatch.test(item.MATKL) || filtruMatch.test(item.MAKTX)) {
filtered.push(item);
} else if (filtruMatch.test(item.MATNR)) {
filtered.push(item);
}
}
return filtered;
};
});
HTML:
<input ng-model='filtru' type="text" placeholder="...">
<tbody ng-repeat="material in materiale | filtruCautare:filtru">
Я собрал это из нескольких блогов, сообщений / вопросов Stackoverflow и других источников ...
Я думаю, что мне нужно как-то отфильтровать записи 50k, сохранить их в области и использовать ng-repeat, чтобы напечатать результаты оттуда, просто у меня возникли проблемы с созданием области, которая извлекает информацию из фильтра .
Любая помощь приветствуется!