Как динамически обновить defaultLabel в простом множественном выборе - PullRequest
0 голосов
/ 08 ноября 2019

При простом множественном выборе я отменяю выбор элементов из файла ts, я могу отменить выбор, но это не будет обновлено в поле ввода.

someComponent.html

<p-multiSelect [options]="cities1" maxSelectedLabels=0 selectedItemsLabel="{0} 
items selected" [(ngModel)]="selectedCities1"></p-multiSelect>
<div *ngFor="let city in selectedCities1 let i=index">
  <button (click)="delete(i)">{{city}}</button>
</div>

someComponent.ts

delete(i){
//using splice method to remove item from selectedCities1 array
}

Вопрос в том, когда я выбираю и отменяю выбор из выпадающего меню, я могу видеть вывод как "1 элемент выбран" "2 выбранный элемент"и т. д. и наоборот.

enter image description here

Но когда я делаю это из функции удаления, я могу отменить выбор раскрывающегося списка, но не могу обновить defaultLabel с помощью элемента" 1selected "" 2 item selected "и т. д. и наоборот.

enter image description here

Очень много пробовал и искал во всех основных вопросах и ответах, но не смог найти ответ.

1 Ответ

1 голос
/ 08 ноября 2019

Это странно, так как writeValue должен вызываться, если вы используете соединение.

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

this.selectedCities1 = this.selectedCities1.slice();

Но вот хак:

<p-multiSelect #sel [options]="cities1" maxSelectedLabels=0 selectedItemsLabel="{0} 
items selected" [(ngModel)]="selectedCities1"></p-multiSelect>
<div *ngFor="let city in selectedCities1 let i=index">
  <button (click)="delete(i);sel.updateLabel()">{{city}}</button>
</div>

Надеюсь, это поможет!

...