Vue.js 将参数值作为Vuejs中的键传递给数据对象

Vue.js 将参数值作为Vuejs中的键传递给数据对象,vue.js,Vue.js,我现在正在创建一个包含4个不同表的页面。每个表中的所有行都有更新和删除按钮。当我分别为每个表编写所有CRUD函数时,我可以使一切工作正常。但我想做的是创建一个更新操作的函数,例如,并将表名作为参数传递 <tr v-for="asset in assets" :key="asset.id"> <td>{{asset.id}}</td> <td>{{asset.name}}</td> <td>{{asset.cate

我现在正在创建一个包含4个不同表的页面。每个表中的所有行都有更新和删除按钮。当我分别为每个表编写所有CRUD函数时,我可以使一切工作正常。但我想做的是创建一个更新操作的函数,例如,并将表名作为参数传递

<tr v-for="asset in assets" :key="asset.id">
  <td>{{asset.id}}</td>
  <td>{{asset.name}}</td>
  <td>{{asset.category.name}}</td>
  <td>
    <a href @click.prevent="editDialog(asset, 'asset')">Edit</a>
    <a href @click.prevent="deleteThis(asset.id)">Delete</a>
  </td>
</tr>
这是我的问题。如果您查看代码的最后一行,我将尝试填写一个名为asset的表单,该表单附带editDialogasset,‘asset’作为其第二个参数。但使用这种语法,Vuejs将转到数据对象并查找表作为键而不是资产,我得到的是表未定义错误。我怎样才能让它工作?谢谢。

我建议您更改此.table.filldata;有了这个。$data[table].filldata

让我知道它是否有效

<v-dialog v-model="dialog">
 <div v-if="editMode">
   <div v-if="target_table == 'asset'">
     <form>...</form>
   </div>
 </div>
 <div v-else>...</div>
</v-dialog>
export default {
  data() {
    return {
      dialog: false,
      editMode: false,
      target_table: "",
      assets: {},
      asset: new Form({
        id: "",
        name: "",
        category: "",
      }),
    }
  },
  methods: {
    fetchAssets() {
      axios.get("/api/assets").then(({ data }) => (this.assets = data));
    },
    editDialog(data, table) {
      this.target_table = table;
      this.editMode = true;
      this.dialog = true;
      this.table.fill(data);
    },
  },
}