Angular2 ngModel设置为""

时间:2016-09-27 18:45:03

标签: angular angular2-template

存储数据的示例类

export class Key {
    value: any = '';

    formatter() {
        let value = MyFunction(this.value);

            if(!value) {
                value = '';
            }

            this.value = value;
        }
    }
}

ngModel输入字段

<input type="text" [(ngModel)]="key.value" (ngModelChange)="key.formatter()">

MyFunction() - 应该从字符串中删除所有非数字字符并返回JUST数字

function MyFunction(mystr) {
   mystr = mystr.replace(/\D/g,'');

   if(mystr.length === 0) {
        return "";
   }else {
        return mystr;
   }
}

当MyFunction()返回一个空字符串并尝试更新key.value时...不会清除输入字段,而是继续附加新字母。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

key.formatter()函数中,使用

替换if条件
if(value === ""){ 
    ... 
}

希望这有帮助!!!

答案 1 :(得分:0)

而不是(ngModelChange)尝试使用[value]="key.value | yourCustomPipe