我正在使用angular 6开发一个Web应用程序。我有一个位置数组和一个填充位置名称的选项列表。我正在使用'onchange'事件获取所选位置。我的问题是,如果存在如果仅是位置数组中的一个元素,则onchange事件不会触发。有人可以对此进行解释。吗?如果有多个元素,那么就没有问题,它可以正常工作。 如果数组中只有元素,该如何实现?
<div class="form-group w-50">
<label for="locations" style="font-size: 14px" class="mb-0">Select
Location:</label>
<select class="form-control form-control-sm" id="loca" (input)="onLocationSelect($event.target.value)">
<option *ngFor="let locations of locationsArray" value={{locations?.id}}>{{locations?.name}}</option>
</select>
</div>
onLocationSelect(value: string) {
try {
const tempValue = value
this.selectedLocation = tempValue;
console.log(tempValue)
} catch (error) {
console.log(error)
}`enter code here`
}
答案 0 :(得分:0)
似乎没有一种方法可以做到完全一样。我建议设置为您的选择元素添加一个[(ngModel)]="selectedLocation"
。在打字稿中,您可以通过类似
selectedLocation = locationsArray[0];
onLocationSelect(value: string) {
console.log(`location was changed to ${value}`);
}
通过这种方式,selectedLocation属性将始终反映实际选择的值,并且在onLocationSelect
函数内部,当逻辑发生实际更改时,您仍然可以执行该逻辑。