Угловой кендо-мультиселектор removeTag - PullRequest
0 голосов
/ 11 января 2019

В проекте Angular 6 я использую кендо-мультиселект, в котором все элементы, выбранные по умолчанию, загружены. Пользователь должен иметь возможность отменить выбор ненужных элементов. Но я могу удалить только последний элемент (один за другим). Для любого элемента, находящегося между списком, событие removeTag удаляет элемент из списка только один раз, но не работает для последующих элементов. RemoveTag правильно запускает и перехватывает e.dataItem, но не удаляет элемент.

Пример кода:

<kendo-multiselect [data]="MYlistItems"
 [(ngModel)]="MYvalue"
 (removeTag)="MYOnRemoveTag($event)"
 [filterable]="true"
 name="MY">
</kendo-multiselect>


        public MYlistItems: Array<string> = [
        'ABC',
        'DEF'
        'PQR',
        'LMN'
        'XYZ'
        ];

     public MYvalue: any = this.MYlistItems; //Selecting all items by default

      public MYOnRemoveTag(e): void {
            var index = this.MYvalue.indexOf(e.dataItem);
            this.MYvalue.splice(index, 1, e.dataItem);

            switch (e.dataItem) {
                case 'ABC':
                    if (this.MYvalue.indexOf('ABC StopDate') !== -1) {
                        var index = this.MYvalue.indexOf('ABC StopDate');
                        this.MYvalue.splice(index, 1, 'ABC StopDate');
                    }
                    this.ABCStopDate_pr = false;
                    break;
                case 'DEF':
                    if (this.MYvalue.indexOf('ABC StopDate') !== -1) {
                        var index = this.MYvalue.indexOf('DEF StopDate');
                        this.MYvalue.splice(index, 1, 'DEF StopDate');
                    }
                    this.DEFStopDate_pr = false;
                    break;
                //AND SO ON...

            }

        }
...