p-выпадающий не отображает правильную метку, когда переменная ngModel является объектом - PullRequest
0 голосов
/ 15 мая 2018

Я использую p-выпадающий компонент PrimeNG.Когда страница загружается изначально, я устанавливаю ng-model, но в раскрывающемся списке всегда отображается первый элемент в качестве выбранного элемента.

HTML

<p-dropdown [options]="cities" [(ngModel)]="selectedCity"  optionLabel="name" [showClear]="true"></p-dropdown>
<p>Selected City: {{selectedCity ? selectedCity.name : 'none'}}</p>

TS

this.cities = [
            {label:'New York', value:{id:1, name: 'New York', code: 'NY'}},
            {label:'Rome', value:{id:2, name: 'Rome', code: 'RM'}},
            {label:'London', value:{id:3, name: 'London', code: 'LDN'}},
            {label:'Istanbul', value:{id:4, name: 'Istanbul', code: 'IST'}},
            {label:'Paris', value:{id:5, name: 'Paris', code: 'PRS'}}
        ];

Здесь Нью-Йорк отображается в качестве выбранного в раскрывающемся списке, даже если я поменяю ng-model на другой город.

1 Ответ

0 голосов
/ 15 мая 2018

Я думаю, что ваша проблема в optionLabel="name", потому что ваш городской объект не содержит имя ключ.

Либо вы замените его на optionLabel="label", либо измените объект города с

{label:'New York', value:{id:1, name: 'New York', code: 'NY'}}

до

{name:'New York', value:{id:1, name: 'New York', code: 'NY'}}

См. StackBlitz

...