Select 显示所选值的对象 Angular 2

Select shows object for selected value with Angular 2

我有一个 select 组件可以很好地加载值,但无论我输入什么值,它总是作为对象返回。我试过以下

<select [(ngModel)]="p.selectedUser">
    <option *ngFor="let u of p.practiceUsers;let i of index;" [value]="i">{{ u.userName }}</option>
</select>

<select [(ngModel)]="p.selectedUser">
    <option *ngFor="let u of p.practiceUsers;let i of index;" [value]="u">{{ u.userName }}</option>
</select>

<select [(ngModel)]="p.selectedUser">
    <option *ngFor="let u of p.practiceUsers;let i of index;" value="{{i}}">{{ u.userName }}</option>
</select>

如果在 select 下面的页面上我输入 {{ p.selectedUser | json}} 它显示 [object object]

我的应用程序中到处都是这样的 select,所以我不确定我在这里遗漏了什么。 p.selectedUser 的值默认来自服务器,只是一个空字符串。

practiceUser 对象是这样的:{ userId: 1, userName: "Joe Smith" }

这里有截图供进一步参考。

第二种方法应该不错。您确定 p 中的数据正确吗?

好吧,我从来没有让它识别 u 的值,但我确实通过更改它来使用索引作为值:

<select [(ngModel)]="p.selectedUser">
    <option *ngFor="let u of p.practiceUsers;let i = index;" [value]="i">{{ u.userName }}</option>
</select>

我有一个 of 而不是一个 =