Реализация поиска по диапазону чисел в нескольких столбцах Угловая интеллектуальная таблица - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь создать таблицу, используя angular-smart-table , которая имеет несколько числовых столбцов. Я должен реализовать поиск диапазона по всем из них. Я создал директиву и пользовательский фильтр для фильтрации данных. Я могу реализовать это для одного столбца, но когда я использую одну и ту же директиву более одного раза, поиск диапазона перестает работать. Проблемы, с которыми сталкиваются, упомянуты ниже

  1. Невозможно найти результат в диапазоне
  2. Все «нижние» текстовые поля показывают одно и то же значение, когда значение вводится в одном текстовом поле.
  3. Все текстовые поля «выше» показывают одно и то же значение, когда значение вводится в одном текстовом поле.

Я создал plunk , аналогичный требованию. Пожалуйста, помогите !!

myApp.directive('stNumberRange', ['$timeout', function ($timeout) {
  return {
    restrict: 'E',
    require: '^stTable',
    scope: {
      lower: '=',
      higher: '='
    },
    template: '<input type="number" class="form-control input-sm" ng-change="rangeChanged()" step="0.01" ng-model="higher"/><input class="form-control input-sm" ng-change="rangeChanged()" type="number" step="0.01" ng-model="lower"/>',
    link: function (scope, element, attr, table) {
      var predicateName = attr.predicate;

      scope.rangeChanged = function () {
        var query = {};

        if (scope.lower) {
          query.lower = scope.lower;
        }

        if (scope.higher) {
          query.higher = scope.higher;
        }

        table.search(query, predicateName)
      }
    }
  };
}]);
...