Почему угловая ui-grid (AngularJS) помещает escape-символ на определенные символы в выпадающем фильтре? - PullRequest
0 голосов
/ 09 июля 2019

Я использую угловую ui-сетку - AngularJS.У меня есть выпадающий список столбцов, позволяющий фильтровать значения cellValues.Но я заметил, что searchTerm иногда получает escape-символы для определенных значений.

Используемая версия сетки: https://github.com/angular-ui/ui-grid v3.1.1 (2016-02-09)

cellValue - это то, как я вижу его в пользовательском интерфейсе.Но searchTerm иногда получает экранирующие символы для определенных значений.Ниже приведены некоторые примеры этого, где cellValue находится сверху, а searchTerm находится ниже:

"My Text- My Text – My Text"
"My Text\- My Text – My Text"

"My Text- My Text (2015-2020)"
"My Text\- My Text \(2015\-2020\)"

"My Text (2015-2020)"
"My Text \(2015\-2020\)"

Вот код, который создает определение столбца в сетке:

$scope.gridOptions = {
    columnDefs: [
        {
            name: "Type",
            field: "typeNavn",
            enableColumnMenu: false,
            cellTemplate: myCellToolTipTemplate,
            width: 110,
            filterHeaderTemplate: myDownFilter,
            filter: {
                term: null,
                options: [],
                condition: function (searchTerm, cellValue, row, column) {
                    if (searchTerm === cellValue) {
                        return true;
                    } else {
                        return false;
                    }
                }
            }
        }

Любые идеи о том, почему searchTerm иногда получает экранирующие символы для определенных значений?

Что-то элегантное с этим поделать?

Конечно, я могу использовать Regex, но, может быть, есть более элегантное решение?

var searchTermWithoutEscapeCharacters = searchTerm.replace(/\\/g, "");
...