如何使用```v-model```加起来Object.values
How to add up Object.values using ```v-model```
我正在尝试将一个 Object.value
相加,将其相加值绑定到我的 input
中输入的数字,通过 v-model
到总数。
当我输入任何数字然后使用 @click
侦听器时,行为很奇怪,它会不断连接我发射的任何内容,将结果视为 String
而不是 Number
.
有趣的是,如果我注释掉 input
tag
,因此删除 v-model
并将 this.shared[2].value
上的值更改为大于 [=22= 的任何数字],将发生所需的行为。
<template>
<div>
<input type="number" v-model="shares[2].value">
<p>{{this.shares[0].value}}</p>
<button class="btn btn-primary"
@click="result">Sum An Object Value</button>
</div>
</template>
<script>
export default {
data(){
return {
shares: [
{id: 'BMW', value: 0},
{id: 'Ford', value: 0},
{id:'Apple', value: 0}
]
}
},
methods: {
result(){
this.shares[0].value += this.shares[2].value
}
}
}
</script>
我怎样才能在这里获得适当的行为?
来自Vue docs:
If you want user input to be automatically typecast as a number, you can add the number modifier to your v-model managed inputs:
<input v-model.number="age" type="number">
This is often useful, because even with type="number", the value of HTML input elements always returns a string. If the value cannot be parsed with parseFloat(), then the original value is returned.
我正在尝试将一个 Object.value
相加,将其相加值绑定到我的 input
中输入的数字,通过 v-model
到总数。
当我输入任何数字然后使用 @click
侦听器时,行为很奇怪,它会不断连接我发射的任何内容,将结果视为 String
而不是 Number
.
有趣的是,如果我注释掉 input
tag
,因此删除 v-model
并将 this.shared[2].value
上的值更改为大于 [=22= 的任何数字],将发生所需的行为。
<template>
<div>
<input type="number" v-model="shares[2].value">
<p>{{this.shares[0].value}}</p>
<button class="btn btn-primary"
@click="result">Sum An Object Value</button>
</div>
</template>
<script>
export default {
data(){
return {
shares: [
{id: 'BMW', value: 0},
{id: 'Ford', value: 0},
{id:'Apple', value: 0}
]
}
},
methods: {
result(){
this.shares[0].value += this.shares[2].value
}
}
}
</script>
我怎样才能在这里获得适当的行为?
来自Vue docs:
If you want user input to be automatically typecast as a number, you can add the number modifier to your v-model managed inputs:
<input v-model.number="age" type="number">
This is often useful, because even with type="number", the value of HTML input elements always returns a string. If the value cannot be parsed with parseFloat(), then the original value is returned.