我正在尝试更新ngModel
onModelChange
我知道我们可以这样做:
<input [ngModel]="myValue" (ngModelChange)="myValue = $event" />
但这不是我想要的。我需要在更新myValue
这是我的代码:
<input mdInput type="number"
[ngModel]="tax.refundAmount"
(ngModelChange)="onChange($event, tax.paidAmount)" />
在控制器中:
onChange($event, maxValue) {
if ($event > maxValue) {
$event = maxValue;
}
}
但是ngModel没有更新:(
如何更新控制器内的模型? 此处显示的输入位于ngFor
循环内,因此无法直接访问模型
修改
我尝试使用[(ngModel)]
和(change)
,但在向父控制器发出事件时存在时间问题
更新1
我想在更新模型之后在组件类中做一些事情,比如发出事件或计算值。因此,我无法返回值,然后在模板中更新模型。
答案 0 :(得分:2)
试试这个?
<input mdInput type="number"
[ngModel]="tax.refundAmount"
(ngModelChange)="tax.refundAmount = onChange($event, tax.paidAmount, tax.refundAmount)" />
你的控制器:
onChange($event, maxValue, refundAmount) {
return $event > maxValue ? maxValue : refundAmount;
}