Как установить значение по умолчанию для выпадающего мультиселекта в angular 2 и ngprime
Я следую примеру PrimeNg .а вот и плунжер .Как я могу сделать некоторые значения предварительно выбранными в раскрывающемся списке.
<p-multiSelect [options]="cities" [(ngModel)]="selectedCities"></p-multiSelect>
3 ответов:
Вам нужно только присоединить массив значений к переменной
selectedCities, чтобы привязать ее к модели .В вашем случае свойствоvalue - это свойство
object, содержащее множество свойств.value:{id:1, name: 'New York', cityCode: 'NY'}Решение состоит в том, чтобы
mapэлементы массива, чтобы получить значения, которые вы хотите.Например, это позволит предварительно выбрать кулак два
itemsиз вашего элемента выпадающего списка .this.selectedCities = this.cities.slice(0,2).map(a => a.value));Если вы хотите предварительно выбрать значения из массива
givenследует использовать методfilter.let arrayOfValues=['NY','IST']; this.selectedCities = this.cities.filter(a => arrayOfValues.includes(a.value.cityCode)).map(a => a.value));Полный пример здесь.
Выбранные города хранятся в массиве
selectedCities. Поскольку это двусторонняя привязка, просто заполните этот arry, он будет отражен в представлении.import {SelectItem} from 'primeng/primeng'; let cities: SelectItem[] = [ { label : "Rome" , value : "ro" }, { label : "London" , value : "lo" }, { label : "Paris" , value : "pa" }, { label : "New York" , value : "ny" } ] let selectedCities: string[] = ["lo", "ny"] // This will pre-select the cities in your dropdown
Есть хороший способ вы можете определить значение для каждого из ваших параметров. Затем задайте переменной selectedCities значение, которое вы хотите получить как defult. Это позволит сделать угловой, чтобы выбрать этот вариант Vale на инициализации.
let Cities: SelectItem[] = [ { label : "Rome" , value : "ro" }, { label : "London" , value : "lo" }, { label : "Paris" , value : "pa" }, { label : "New York" , value : "ny" } ] selectedCity = "ro";Это приведет к тому, что выбранный calue будет дефолтировать Рим.
(*Спасибо Джереми Тиллу. Я скопировал у тебя часть своего кода.)
Comments