Значение NULL, нарушающее пользовательские фильтры в Mat Table - PullRequest
0 голосов
/ 14 апреля 2020

Я добавляю несколько пользовательских фильтров в Mat-Table.

Проблема в том, что данные имеют значение null, и вся функция фильтра нарушается.

Мой образец макета

{
  name: null,
  id: 1,
  colour: 'Green',
  pet: 'Dog'
},

В функции customFilter() Я фильтрую данные, как показано ниже,

 data.name.toLowerCase().indexOf(searchTerms.name) !== -1

Я пытался добавить вот так data?.name, но безуспешно.

Ссылка на мой Stackblitz https://stackblitz.com/edit/material-column-filter-ov6ut6?file=src / app / app.component.ts

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 14 апреля 2020

Более элегантное состояние:

(data.name || '').toLowerCase().includes(searchTerm.name.toLowerCase())
0 голосов
/ 14 апреля 2020

Попробуйте это:

let names = [
    {
  "name": null,
  "id": 1,
  "colour": "Green",
  "pet": "Dog"
},
       {
  "name": "Hello",
  "id": 2,
  "colour": "Green",
  "pet": "Dog"
},
        {
  "name": "Not null",
  "id": 3,
  "colour": "Green",
  "pet": "Dog"
}
];

let filterArray = names.filter((name1) => {return name1.name && name1.name.toLowerCase().indexOf('ello') > -1});
console.log(filterArray);

Вы должны добавить нулевую проверку и индекс проверки в состоянии фильтра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...