Как удалить значение «Фрукты» из моей области ввода текста - PullRequest
0 голосов
/ 09 апреля 2019

Так что мне нужно удалить значение, которое я добавил в области ввода текста в виде чипа, но я не знаю, как решить коды, чтобы связать его вместе и удалить его.Так что должно произойти, когда правильные коды связаны друг с другом, его можно будет удалить, когда я нажму «х» на чипе.

Я могу добавить значения, но когда я нажимаюудалить значения все еще там.

          add(event: MatChipInputEvent): void {
            const input = event.input;
            const value = event.value;
            console.log(`mat chip`, event);
            console.log(`mat chip value`, value);

            // Add our fruit
            if ((value || '').trim()) {

              this.fruits.push({name: value.trim()});
              console.log(`fruits`, this.fruits);
              let type = this.editDeliveryOrderForm.value.type;
              type += ',' + value.trim();
              this.editDeliveryOrderForm.patchValue({
                type
              });
            }

            // Reset the input value
            if (input) {
              input.value = '';
            }
          }

          remove(fruit: Fruit): void {
            const index = this.fruits.indexOf(fruit);
            const value = fruit.name;

            // console.log(`mat chip`, event);
            // console.log(`mat chip value`, value);

            if (index >= 0) {
              this.fruits.splice(index, 1);

              // this.fruits.push({name: value.trim()});
              // console.log(`fruits`, this.fruits);
              let type = this.editDeliveryOrderForm.value.type;
              value.trim();
              this.editDeliveryOrderForm.patchValue({
                type
              });
            }

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Вы можете использовать Array.filter () для фильтрации элементов в массиве

remove(fruit: Fruit): void {
       this.fruits = this.fruits.filter((fr)=>fr.name !== fruit.name);
}

Это вернет новый массив, удаляющий текущий фрукт.

0 голосов
/ 09 апреля 2019

Метод массива indexOf () чувствителен к регистру.Объект, переданный в массив fruits, не возвращает индекс.

const index = this.fruits.indexOf(fruit);
//console.log(index);

if(index !== -1) {
// code..
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...