0

假设有一个下拉列表,其中所有值都是从资产加载的。这是我的 json 文件:

 "students": [{
            "id": "1",
            "name": "Allan"
        },
        {
            "id": "2",
            "name": "Spago"
        }
    ],
    "students_select": {
        "id": "2"
    },

我打电话给我的服务,它会打印出正确的值:

this.fakeService.getDetail().subscribe((result) => {
        if (Utility.isNotNull(result)) {
          this.detail= result;

        }
      })

在我的html中我这样做:

        <p-dropdown [options]="detail['students']" [(ngModel)]="detail['student_select']"  optionLabel="name"></p-dropdown>

问题是我在下拉列表中的值显示正确,但唯一的问题是必须在开始时显示的值是“ student_select”,但它显示第一个值“ id=1 and name=allan”。我的 api 不能是"id:2 and "name": "Spago""因为返回所选项目的正确方法是 id。任何人都可以帮我解决这个问题吗?

4

1 回答 1

0

您的 ngModel 绑定也应该包含学生姓名。现在你的students_select. 在您的 ts 文件中,尝试执行此操作。

selectedStudent = this.students.find(student => student.id === this.students_select.id);

然后,像这样更改您的 HTML 文件

<p-dropdown [options]="detail['students']" [(ngModel)]="selectedStudent" optionLabel="name"></p-dropdown>
于 2020-05-11T16:12:26.713 回答