我的html代码就是这样====><span class="custom-super-script" data-language="en" v-fraction-superscriptor="1,310.66">
我的vue指令是====>
Vue.directive("fraction-superscriptor", function (el, binding) {
let number = !isNaN(parseFloat(binding.value)) ? parseFloat(binding.value).toFixed(2) : 0;
number = parseFloat(number).toLocaleString(el.dataset.language || "nl-nl", { useGrouping: false, minimumFractionDigits: 2 });
});
但是我总是得到310.66的值,而不是1310.66。当我检查绑定时,我得到了。
def: {bind: ƒ, update: ƒ}
expression: "1,310.66"
modifiers: {}
name: "fraction-superscriptor"
rawName: "v-fraction-superscriptor"
value: 310.66
如何解决这个问题?它只会对大于1000的数字产生问题。
最佳答案
在v-fraction-superscriptor="1,310.66"
中,"1,310.66"
被评估为javascript表达式。逗号(,)是有效的JavaScript operator,这就是为什么它在计算表达式后返回“ 310”的原因。
在您的情况下,将其作为这样的字符串传递,您将获得正确的值。
v-fraction-superscriptor="'1,310.66'"