How make VueJS understand localized numbers?
让我们来看看一个简单的求和应用程序。 两个输入
我们有这个标记
1 2 3 | <input v-model.number="v1"> <input v-model.number="v2"> {{v3}} |
还有这个Vue脚本
1 2 3 4 5 6 7 8 9 10 11 12 | var vm = new Vue ({ el:"#app", data: { a:0, b:0, }, computed: { c:function(){ return this.a + this.b; } } }) |
这很有效,除了我正在使用本地化号码。 那意味着。 使用逗号","而不是点"。" 和点而不是逗号。
用小数位输入数字会混淆vue,因此无法得出正确的总和。
为了使VueJS理解本地化的数字输入并使其正确求和,该怎么办?
例如在pt-BR语言环境中:
好吧,首先,数字只是一个数字。 在内部,
因此,像
要打印它,只需使用JavaScript的
1 2 3 4 5 6 7 8 9 10 11 12 | var vm = new Vue({ el:"#app", data: { a: 1110.12, b: 10000.11, }, computed: { c: function() { return this.a + this.b; } } }) |
1 2 3 4 5 6 7 8 9 | <script src="https://unpkg.com/vue"> <input v-model.number="a"> <input v-model.number="b"> Browser's locale: {{c.toLocaleString()}} en-US locale: {{c.toLocaleString('en-US')}} pt-BR locale: {{c.toLocaleString('pt-BR')}} |
使用格式化的
现在,如果您希望
幸运的是,快速搜索带来了一项似乎可行的工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Vue.use(VueNumeric.default) var vm = new Vue({ el:"#app", data: { a: 1110.12, b: 10000.11, }, computed: { c: function() { return this.a + this.b; } } }) |
1 2 3 4 5 6 7 8 9 10 11 12 | <script src="https://unpkg.com/accounting-js"> <script src="https://unpkg.com/vue"> <script src="https://unpkg.com/vue-numeric"> Formatted inputs: <vue-numeric currency="R$" separator="," precision="2" v-model="a"></vue-numeric> <vue-numeric currency="$" separator="." precision="2" v-model="b"></vue-numeric> Browser's locale: {{c.toLocaleString()}} en-US locale: {{c.toLocaleString('en-US')}} pt-BR locale: {{c.toLocaleString('pt-BR')}} |
同样,该组件只是更改输入字段。 该数字仍然只是一个数字,并且仍然必须使用