ngModel不使用管道号

时间:2018-01-24 12:29:43

标签: angular

我的html中有这个:

<input class="ui-g-4 right" [ngModel]="product.unitprice | number:'1.2-2'" (ngModelChange)="updateUnitPrice(i,$event);sumTotal(i)">

问题是当我输入类似这样的东西3412输入我得到3412,00但在控制台我得到一个错误

InvalidPipeArgument: '3412,00' for pipe 'DecimalPipe'

我的方法:

sumTotal(i,e){
    this.products[i].itemamount = (this.products[i].quantity * parseFloat(this.products[i].unitprice.toLocaleString())) - parseInt(this.products[i].discountamount ? this.products[i].discountamount.toLocaleString() : '0');
}
updateUnitPrice(i,e){
    this.products[i].unitprice = +e;
}

2 个答案:

答案 0 :(得分:0)

应该是 [ngModel]

<input class="ui-g-4 right" [(ngModel)]="product.unitprice | number:'1.2-2'" (ngModelChange)="updateUnitPrice(i,$event);sumTotal(i)">

<强> DEMO

答案 1 :(得分:0)

你的模型product.unitprice需要有一个有效的数字3412,00,你需要格式化你的输入,所以它是一个有效的十进制数,例如3412.00

另一种选择是将您的字符串转换为类似Number(product.unitprice)

的数字

也可能是您添加e这应该是e.target.value来获取实际值。