我正在尝试重写用于呈现html select元素的列表,以使其键与列表对象类型的主要标识符匹配。
export class Industry {
constructor(
public industryId?: number,
public code?: number,
public description?: string
) { }
}
以我的形式:
<select formControlName="industryId" class="form-control">
<option *ngFor="let i of industries" [ngValue]="i.industryId">{{i.description}}</option>
</select>
当我分配从服务中获取的数组时,一切都很好但是当我将其重写为关联数组,因此键与主标识符匹配时,它会呈现一个选项列表,其中包含正确的选项数但没有值。
private getIndustries() {
this.industryService.getIndustries()
.subscribe(
industries => {
// this works
this.industries = industries;
// this does not work
this.industries = [];
for (let item of industries) {
this.industries[item['industryId']] = item;
}
});
}
答案 0 :(得分:0)
JS中没有关联数组概念。你不能马上做到这一点。将其转换为对象数组。在对象中,您可以动态添加键,然后像访问它一样 这个..
例如:
this.industry = [];
this.obj = {};
for (let item of industries) {
this.obj[item['industryId']] = item;
};
In the view you can use ngFor to iterate get the value as follows...
this.industry.push(obj);