【发布时间】:2016-05-18 16:32:23
【问题描述】:
我有一个商店组件,我需要禁止人们在我的输入中选择负数。
例如,如果用户在我的输入中输入 -3,输入值将立即变为 0。
如果值为负,我如何控制我的 angular 2 输入 OnChange 值将其设置回 0?
尝试使用(ngModelChange)="myMethod($event)"并将参数设置为0,如果它是负数,但没有奏效。
【问题讨论】:
我有一个商店组件,我需要禁止人们在我的输入中选择负数。
例如,如果用户在我的输入中输入 -3,输入值将立即变为 0。
如果值为负,我如何控制我的 angular 2 输入 OnChange 值将其设置回 0?
尝试使用(ngModelChange)="myMethod($event)"并将参数设置为0,如果它是负数,但没有奏效。
【问题讨论】:
min 和step 防止微调器变为负数。 (参考:this SO answer)ngModelChange 处理用户尝试输入负数的情况。@Component({
selector: 'my-app',
template: `{{title}}
<p><input type="number" min="0" step="1" [ngModel]="model"
(ngModelChange)="validate($event)">`,
})
export class AppComponent {
title = `Angular - RC.1`;
model = 3;
validate(value) {
value < 0 ? this.model = 0 : this.model = value;
}
}
【讨论】:
validate 方法我正在使用哪个模型? [(ngModel)]="items[i].amount"
i:validate($event, i),然后在方法中查找元素。
使用模块ng2-validation 中的min 和digits 验证器可以解决问题。
【讨论】: