在下拉列表中选择的值不起作用Angular
我想在组件类的下拉列表中使用选定的值。 当从下拉列表中选择一个值时,我使用ngModel存储这个值,但它不起作用,也尝试了另一种方法,即我触发了一个事件函数并将选定的值作为参数传递,但这种方法也不起作用。在下拉列表中选择的值不起作用Angular
<select [(ngModel)]="selectedControl" class="form-control" (click)="onSelection($event)">
<option *ngFor="let control of controlArray; let i=index"
[value]="control">{{controlArray[i].name}}</option>
</select>
当我输出在控制台上选择的值,它不显示,这里是组件类代码:
onSelection(control){
console.log(typeof(control))
console.log(control.target.value)
}
请帮助。
你应该使用change
事件,不click
:
<select [(ngModel)]="selectedControl" class="form-control" (change)="onSelection()">
<option *ngFor="let control of controlArray; let i=index"
[ngValue]="control">{{controlArray[i].name}}</option>
</select>
您也应该检查selectedControl
当前选择的值。
onSelection(){
console.log(this.selectedControl)
}
最后一件事 - 你应该把有一个标值,如果你想要做这样或使用ngValue
代替。
我在概念上不是很清楚,请你介绍一下这个概念的一些数据链接。 - –
你究竟是什么意思?点击vs更改事件?或ngValue? –
我不清楚ngValue和值绑定之间。 –
您从不记录选定的值。您记录传递给该方法的事件($ event)。不要将事件传递给方法,只需登录'this.selectedControl',因为这与ngModel绑定在一起。此外,该事件不应该(点击),但(改变)。 –
我之前也试过这个解决方案,但是通过记录this.selectedControl“[object Object]”显示输出而不是选定的值。 –
您可能需要绑定到'[ngValue]'而不是'[value]',因为native属性只使用字符串。 – rinukkusu