Angular 角度2:从API中的选项中选择p下拉默认值

Angular 角度2:从API中的选项中选择p下拉默认值,angular,dropdown,primeng,Angular,Dropdown,Primeng,在Angular 2中,p-dropdown映射为从web API调用填充的对象。在API调用之后,ngModel被设置为下拉列表中的某个值。但是,仍然没有值显示为默认值,它仍然显示占位符值 HTML <div *ngIf="dropdownDataLoaded" style="display: inline-block"> <span class="dropdown"

在Angular 2中,p-dropdown映射为从web API调用填充的对象。在API调用之后,ngModel被设置为下拉列表中的某个值。但是,仍然没有值显示为默认值,它仍然显示占位符值

HTML

<div *ngIf="dropdownDataLoaded" style="display: inline-block">
                        <span class="dropdown" style="margin-left: 126px;">
                            <p-dropdown [options]="countryOptions" placeholder="Select" [(ngModel)]="selectedCountryValue" inputStyleClass="dropdown" optionLabel="name" (onChange)="onCountryChange($event)"></p-dropdown>
                        </span>
                    </div>
IDropdownElement模型:

export interface IDropdownElement {
  name: string;
  id: string;
  type: string;
  code: string;
}
还有,下面的链接提到了,但没有运气


ngModel
通过引用绑定,而不是值绑定

因此,您需要让它指向列表中的同一对象

更改此项:

this.selectedCountryValue = {
        "name": "USA"
       };
为此:

this.selectedCountryValue = this.countryOptions.find(country => country.name === 'USA');

或者使用
指令进行比较,请在此处阅读更多信息:

ngModel
通过引用绑定,而不是值绑定

因此,您需要让它指向列表中的同一对象

更改此项:

this.selectedCountryValue = {
        "name": "USA"
       };
为此:

this.selectedCountryValue = this.countryOptions.find(country => country.name === 'USA');

或者使用
指令进行比较,请在此处阅读更多内容:

谢谢。按预期工作,谢谢。按预期工作。