您可以通过设置 property.manager
的值来选择下拉列表中的项目。假设selectedName
是您想要选择的Manager
项的名称,您可以执行以下操作:
// Case sensitive
this.property.manager = this.managers.find(m => m.name === this.selectedName)
// Case insensitive
let selectedNameUp = this.selectedName.toUpperCase()
this.property.manager = this.managers.find(m => m.name.toUpperCase() === selectedNameUp)
以下是相关的标记和代码。请参见
此 stackblitz以查看演示。
HTML:
<select name="manager" [(ngModel)]="property.manager" class="form-control" required>
<option disabled [ngValue]="undefined">Select Manager</option>
<option *ngFor="let manager of managers" [ngValue]="manager">{{manager.name}}</option>
</select>
<input type="text" [(ngModel)]="selectedName" (ngModelChange)="onNameChange($event)">
代码:
selectedName: string;
property = {
ref_no: '',
address: '',
manager: undefined
};
managers = [
{ "company": "Test Company", "name": "John Doe", "id": "3oE37Fo2QxGHw52W7UHI" },
{ "company": "Another Company", "name": "John Brown", "id": "LRF8xAi48rRuWu0KZex3" },
{ "company": "XYZ", "name": "Subhan Ahmed", "id": "TqOQHbdwJdwgwD8Oej8v" }
];
onNameChange($event) {
let selectedNameUp = this.selectedName.toUpperCase();
this.property.manager = this.managers.find(m => m.name.toUpperCase() === selectedNameUp);
}
managers: Observable<Manager>;
在subscribe()中。 - Subhanproperty.manager
。而管理器则是在启动时加载的。 - Subhanproperty.manager
与下拉列表绑定,使用了[(ngModel)]
。因此,它是由列表中的选定项目设置的。它不能同时绑定到另一个输入元素。 - ConnorsFan