Поиск текста из шаблона ячейки не работает в пользовательском интерфейсе

1

Я определил шаблон условной ячейки для одного из столбцов. Его отображение данных правильно, но я не могу найти текст в шаблоне ячейки. Вот мой plunkr: https://plnkr.co/edit/TDX5jtPord1hkzCVaw3L?p=preview

var template1 = '<div class="">' + 
'<div class="" ng-if="COL_FIELD > 30">Greater </div> ' +
'<div class="" ng-if="COL_FIELD < 30"> Lesser </div> ' +
'</div>';

В шаблоне я поставил условие, что.. если COL_FIELD> 30, тогда напишите Greater.. или напишите Lesser. И теперь я должен иметь возможность искать столбцы Большие или Малые числа.

Изображение 174551

  • 0
    Где COL_FIELD определяется в PLNKR?
  • 0
    COL_FIELD поставляется с пользовательским интерфейсом. Это значение этого столбца перед отображением шаблона ячейки.
Показать ещё 5 комментариев
Теги:
angular-ui-grid

2 ответа

2
Лучший ответ

Решением может быть добавление свойства в ваши данные, например:

$http.get('data.json').success(function(data) {
    data.map(function(item) {
        item.greaterLesser = item.amount > 30 ? 'Greater' : 'Lesser';
    });
    $scope.gridOptions.data = data;
});

а затем вместо использования суммы с шаблоном просто привяжите это свойство.

$scope.gridOptions = {
    enableFiltering: true,
    columnDefs: [{
      field: 'name',
      width: 70
    }, {
      field: 'greaterLesser',
      name: 'Number',
      width: 90,
    }, {
      field: 'amount',
      name: 'Currency',
      cellFilter: 'currencyFilter:this',
    }]
};

Вот обновленный плункер

редактировать

Если вы хотите использовать шаблон, вы можете реализовать функцию поиска самостоятельно. Вы можете добавить параметр filter в свое поле и реализовать функцию condition. Что-то вроде:

filter: {
    condition: function(searchTerm, cellValue) {
        var value = cellValue > 30 ? 'greater' : 'lesser';
        var result = value.search(searchTerm.toLowerCase());
        return result > -1;
    }
}

Здесь я использовал функцию search но вы могли бы использовать match или какую-либо другую функцию. Вот демонстрационный плункер

  • 0
    Сейчас это служит цели для меня ... но есть несколько случаев, когда мне нужно определить шаблон .. из-за специфического стиля и других вещей ... Так что я хотел искать из этого шаблона. Во всяком случае, это работает для меня сейчас. Отметит этот ответ, если я не получу больше ответа.
  • 0
    Я обновил свой ответ другим возможным решением
Показать ещё 1 комментарий
0

Я использовал приведенный ниже код, чтобы поиск работал

field: 'EmpId', 
displayName: 'Employee Type', 
cellTemplate: '<div style="cursor:pointer"  class="ui-grid-cell-contents">{{grid.appScope.GetEmployeeType(row)}}</div>', 
filter: {
            condition: function (searchTerm, cellValue,row,column) {
            var value = $scope.GetEmployeeType(row);//same function that you use to display value in cell Template
            return (value.toLocaleLowerCase().indexOf(searchTerm.toLocaleLowerCase())>-1);
                            }
                        }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню