请教一个elementUI与Vue底层逻辑的问题
最近有一个需求是当el-InputNumber输入的值为0,且有设置precision(假设为2)数值精度的情况下,最后输出的值应为0,不为0.00。查看了elementUI的源码,我做了如下修改
toPrecision(num, precision) { if (precision === undefined) precision = this.numPrecision;
//增加的判断条件
if(num === 0){
return 0
}else {
return parseFloat(Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision));
}
},
我在原本的判断函数中做了是否为0的判断,若输入的值为0,则return0,但是当实际操作过后,发现并没有生效。打了断点查看之后发现上面的函数运行时是没问题的,但是当代码走到vue.runtime.esm.js中时,检查到代码只要走到这个函数中,,数值就会被改回去(0变为0.00),请问这个是什么原因呢?
回答:
并没有复现你说的问题,是你修改的地方不对
在线示例
我修改的地方
将
if (this.precision !== undefined) { currentValue = currentValue.toFixed(this.precision);
}
修改为
if (this.precision !== undefined) { if (currentValue !== 0)
currentValue = currentValue.toFixed(this.precision);
}
以上是 请教一个elementUI与Vue底层逻辑的问题 的全部内容, 来源链接: utcz.com/p/935553.html