【发布时间】:2018-01-27 03:00:12
【问题描述】:
我正在尝试在onModelChange 中更新ngModel
我知道我们可以这样做:
<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
我想在组件类中在更新模型后做一些事情,比如发出事件或计算值。因此我无法返回值然后更新模板中的模型。
【问题讨论】:
-
$event真的是number吗? -
是的,应该是。
export class Tax { paidAmount: number; refundAmount: number; currency: string; type: string; }我会尝试强制强制转换为 int -
您是否尝试将
tax传递给function并改为设置tax.refundAmount?或者这会导致死循环吗? -
是的,我也试过了,但仍然没有更新:/
-
(change)="onChange'()' ? (input)="onChange()" ?
标签: javascript html angular angular-ngmodel