Vue.js 绑定模型将字符串转换为数字
Vue.js binding model convert string to number
我有一个绑定这个的输入:
v-model: user.settings.filter(item => item.id === 1)[0].value
问题是值是一个字符串,它不起作用。如何转换为数字?
user 变量是来自 vuex 的计算 属性:
computed: {
...mapGetters({
user: 'auth/user',
}),
},
如果这个变量在数据中,那会很容易...但是在计算中属性我不知道如何操作它。
在坏的地方修好它。这意味着如果你从某个地方的 api 得到 value
,你必须修复 api 以便它 returns 一个数字而不是一个字符串。如果您从某处的应用程序获取它,则需要将其保存为数字而不是字符串。如果它是在 Vuex getter 中动态计算的,请使用 parseInt(..)
(docs) or parseFloat(..)
(docs) 将字符串中的任何内容解析为数字。请记住,如果字符串中有无意义的内容,则该属性中可能会出现 NaN。
我同意@Sumurai8,你不应该收到需要从前端改变的类型。虽然这里有一个关于如何做到这一点的例子,通过使用 .map(Number)
new Vue({
el: "#app",
data: {
testNumber: undefined
},
computed: {
getTestNumber: function() {
return this.testNumber ? this.testNumber.split(',').map(Number) : null
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<h2>String to number:</h2>
<input type="text" v-model="testNumber">
<p v-html="getTestNumber"></p>
</div>
这会将数字字符串转换为数字。一旦你添加一个字符,它将 return 与 NaN(非数字)
我有一个绑定这个的输入:
v-model: user.settings.filter(item => item.id === 1)[0].value
问题是值是一个字符串,它不起作用。如何转换为数字?
user 变量是来自 vuex 的计算 属性:
computed: {
...mapGetters({
user: 'auth/user',
}),
},
如果这个变量在数据中,那会很容易...但是在计算中属性我不知道如何操作它。
在坏的地方修好它。这意味着如果你从某个地方的 api 得到 value
,你必须修复 api 以便它 returns 一个数字而不是一个字符串。如果您从某处的应用程序获取它,则需要将其保存为数字而不是字符串。如果它是在 Vuex getter 中动态计算的,请使用 parseInt(..)
(docs) or parseFloat(..)
(docs) 将字符串中的任何内容解析为数字。请记住,如果字符串中有无意义的内容,则该属性中可能会出现 NaN。
我同意@Sumurai8,你不应该收到需要从前端改变的类型。虽然这里有一个关于如何做到这一点的例子,通过使用 .map(Number)
new Vue({
el: "#app",
data: {
testNumber: undefined
},
computed: {
getTestNumber: function() {
return this.testNumber ? this.testNumber.split(',').map(Number) : null
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<h2>String to number:</h2>
<input type="text" v-model="testNumber">
<p v-html="getTestNumber"></p>
</div>
这会将数字字符串转换为数字。一旦你添加一个字符,它将 return 与 NaN(非数字)