b 输入模型具有字符串类型的值

Pet*_*ran 4 vue.js bootstrap-vue

我正在尝试创建一个带有数字字段的表单。

<b-input v-model="testNumber" type="number"/>
Run Code Online (Sandbox Code Playgroud)

在我的数据上,我有一个简单的数字变量。

data() {
  return {
    testNumber: 10,
  }
},
Run Code Online (Sandbox Code Playgroud)

但是,当我跟踪 testNumber 时,它是一个字符串

{{ typeof testNumber }}  // String
Run Code Online (Sandbox Code Playgroud)

dre*_*ens 10

您可以向 v-model 添加修改器。

( https://vuejs.org/v2/guide/forms.html#number )

<b-form-input v-model.number="testNumber" />
Run Code Online (Sandbox Code Playgroud)

更新

不要使用v-model.numberthis 作为 bootstrap-vue 建议不要这样做:

v-model 修饰符,.number并且.trim在用户键入时可能导致意外的光标跳转(这是 v-model 在自定义组件上的 Vue 问题)。避免使用这些修饰符。

但是使用 b-form-input 建议:

为了解决这个问题,<b-form-input><b-form-textarea>有两个布尔道具trimnumber它模仿天然Vue的V型调节剂.trim.number分别。

<b-form-input v-model="testNumber" :number="true" />
Run Code Online (Sandbox Code Playgroud)

  • 由于 `number` 和 `trim` 属性是布尔值(不存在时默认为 `false`),因此您可以将上面的内容简化为 `&lt;b-form-input v-model="testNumber" number /&gt;`。布尔属性的存在将使其变为“true” (2认同)