Это моя версия исправления, я понимаю, что вам нужно использовать обычный тег выбора, поэтому я предоставил решение без использования какого-либо специального плагина выбора, пожалуйста, дайте мне знать, если это решит вашу проблему.
HTML Код:
<select class="mdb-select md-form" id="test" searchable="Search here.." multiple #selectBox (change)="onChange($event.target)">
<option value="" disabled>Choose your country</option>
<option
*ngFor="let item of countries"
[value]="item.id"
[selected]="userCountries.indexOf(item.id) > -1">{{item.name}}</option>
</select>
Код компонента:
import { Component, ElementRef } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
userCountries = [
1,2,3,4
];
countries = [
{
name: 'USA',
id: 1,
},
{
name: 'Germany',
id: 2,
},
{
name: 'France',
id: 3,
},
{
name: 'Poland',
id: 4,
},
{
name: 'Japan',
id: 5,
},
];
onChange(selectCtrl) {
const values = Object.keys(selectCtrl['selectedOptions']).map(key => selectCtrl['selectedOptions'][key]);
const output = values.map((item: HTMLOptionElement) => item.value);
this.userCountries = values.map((item: HTMLOptionElement) => +item.value);
console.log(this.userCountries);
}
}
Пример стека блиц: Пример стекаблица