首页 > 解决方案 > 两种方式绑定 Bootstrap-Vue 表

问题描述

我正在尝试在bootstrap-vue表上使用 v-model 使用两种方式的数据绑定。但是表上的值不会随着值的变化而变化。

我尝试使用输入文本更改数据。

<template>
    <b-table striped hover :items="items" :fields="fields" v-model="items"></b-table>

    <span>The Value: {{value}} </span>
    <b-form-input v-model="value"></b-form-input>
</template>

<script>
  export default {
    data() {
      return {
        value = '',
        fields: ['field', 'value',],
        items: [
          { field: 'Field of Value', value: this.value},
        ]
      }
    }
  }
</script>

表单输入中的给定值会更改跨度文本但不会更改b-table值?

标签: twitter-bootstrapvue.jsvuejs2vue-componenttwo-way-binding

解决方案


您应该使用itemsprop 而不是v-model指令:

  <b-table striped hover  :fields="fields" :items="items"></b-table>

b-tableitems 道具是一种绑定方式。

您应该使用 watch 属性来使该响应式:

 export default {
    data() {
      return {
        value : '',
        fields: ['field', 'value',],
        items: [
          { field: 'Field of Value', value: this.value},
        ]
      }
    },
   watch:{
   value(newVal){
   this.items[0].value=this.value;
    this.$set(this.items,0,this.items[0])

    }
  }
  }

推荐阅读