1

我的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 的数字产生问题。

4

1 回答 1

2

In v-fraction-superscriptor="1,310.66","1,310.66"被评估为 javascript 表达式。逗号 (,) 是一个有效的 javascript运算符,这就是它在评估表达式后返回“310”的原因。在您的情况下,将其作为这样的字符串传递,您将获得正确的值。

v-fraction-superscriptor="'1,310.66'"
于 2019-07-23T12:55:01.727 回答