貌似由于在 zone 外面刷新一个组件,它的更新不会被渲染出来
这个原因是瞎猜的,就是我也不确定的样子。。。
<input type="text" class="bet-input" [(ngModel)]="$inputText">
private $_input: string = '';
get $inputText(): string {
return this.$_input;
}
set $inputText(value: string) {
this.$_input = value;
try {
let oldValue = value.match(/[0-9]/g).join('').trim();
let newValue = parseInt(oldValue);
if(isNaN(newValue)) {
setTimeout(()=> this.$_input = '', 50);
} else {
setTimeout(()=> this.$_input = newValue.toString(), 50);
}
}catch(err) {
setTimeout(()=> this.$_input = '', 50);
}
}
先返回使脏检查成立,然后再setTimeout在更新
自问自答。
Stack Overflow 已经有 answer 了:
http://stackoverflow.com/ques...
Update: See also http://blog.thoughtram.io/ang... for more details.