Отображать любые сопоставленные данные независимо от формата - PullRequest
0 голосов
/ 16 мая 2019

Может быть, я ошибаюсь, но я думаю, что этот код отвечает за поиск и отображение данных, и только если он точно совпадает с адресом там, со всеми прописными и строчными буквами, запятыми и так далее. Как изменить его так, чтобы он отображал любой совпадающий адрес независимо от формата? Здесь задействованы файлы json и csv. Моя страница: http://wp3.it -do.pw72n.spectrum.myjino.ru / sample-page / . Сайт с учебным приложением: http://ui -grid.info / docs / #! / Tutorial / Tutorial:% 20306% 20Custom% 20Filters . Там под первой опцией Name расположен вход, где вы можете вводить текст, и он будет показывать все совпадения независимо от прописных и строчных букв, я хочу то же самое. Вот пример тоже, как это работает: https://docs.angularjs.org/api/ng/filter/filter


var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.pagination']);
app.controller('MainCtrl', ['i18nService', function(i18nService){
    //es is the language prefix you want
    i18nService.setCurrentLang('ru');
}]);

app.controller('MainCtrl', ['$scope', '$http', function ($scope, $http) {
    $scope.getTableHeight = function() {
        var rowHeight = 30; // your row height
        var headerHeight = 30; // your header height
        return {
            height: (25 * rowHeight + headerHeight-20) + "px"
        };
    };


    $scope.gridOptions1 = {
        rowHeight: 30,
        enableFiltering: false,
        onRegisterApi: function(gridApi){
            $scope.gridApi = gridApi;
            $scope.gridApi.grid.registerRowsProcessor( $scope.singleFilter, 200 );
        },
        paginationPageSizes: [25,50,100,250,1000],
        paginationPageSize: 25,
        columnDefs: [
            { name: 'adress',displayName: 'Адрес', enableColumnMenu: false},
            { name: 'dolg', displayName: 'Задолженность, руб', enableColumnMenu: false,width: '25%'
            },
            { name: 'oplata', displayName: 'Оплатить', enableColumnMenu: false, cellTemplate: '<a class="ui-grid-cell-contents right_color" href="/oplata-step2/?{{\'address=\'+row.entity.adress+\'&summa=\'+ row.entity.dolg}}">Оплатить</a>',width: '20%' }

        ]

    };


$http.get('/moduleOplata/data.php')
        .then(function (response) {
            $scope.gridOptions1.data = response.data;
        });

    $scope.filter = function() {
        $scope.gridApi.grid.refresh();
    };

    $scope.singleFilter = function( renderableRows ){
        var matcher = new RegExp($scope.filterValue);
        renderableRows.forEach( function( row ) {
            var match = false;
            [ 'adress'].forEach(function( field ){
                if ( row.entity[field].match(matcher) ){
                    match = true;
                }
            });
            if ( !match ){
                row.visible = false;
            }
        });
        return renderableRows;
    };
<input ng-model='filterValue' class="search_block" placeholder="Введите адрес для поиска" ng-change="filter()"/>
<div ui-grid="gridOptions1" ui-grid-pagination class="grid" ng-style="getTableHeight()"></div>
...