【发布时间】:2016-04-25 21:49:53
【问题描述】:
ngModel 似乎有一个奇怪的问题。 当您在此处查看示例时:Plnkr
您会看到,当我尝试将可能的值限制在 1 到 5 之间时,当输入高于 5 的值时,重置输入总是可以正常工作。重置为 1 几乎同样有效,但当输入为 1 或无。然后 ngModel 行为正确,但输入未正确更新。
组件类
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
...
<input type="text"
[(ngModel)]="testValue"
onClick="this.select();"
onkeypress='return event.charCode >= 48 && event.charCode <= 57'>
</div>
`,
directives: []
})
export class App {
private changeValueTimeout;
private _testValue:number = 0;
private _testValueMax:number = 5;
get testValue() {
return this._testValue + 1;
}
set testValue(value: string) {
clearTimeout(this.changeValueTimeout);
var me = this;
this.changeValueTimeout = setTimeout(() => {
var numValue:number = Number.parseInt(value);
if (numValue > me._testValueMax - 1){
numValue = me._testValueMax;
} else if (numValue < 1 || isNaN(numValue)){
numValue = 1;
}
me._testValue = numValue - 1;
}, 1000);
}
constructor() {}
}
这是一个特定于 HTML 的问题吗? angular2 有问题吗?
【问题讨论】:
-
这可能也适用于您的用例stackoverflow.com/a/37561412/217408