Pio*_*zek 7 datatable select vue.js vuetify.js
我正在尝试选择表中的一行并发出所选项目。
选择一个将选择所有对象,但仅将第一个遇到的对象保存到模型中(作为selected变量)。
你有什么想法吗,我做错了什么?
<template>
<v-data-table
:headers="headers"
:items="items"
:search="search"
:loading="loading"
v-model="selected"
single-select
show-select
:options="{itemsPerPage:5}"
@item-selected="itemSelected"
>
<template v-slot:top>
<v-toolbar flat>
<v-text-field
v-model="search"
append-icon="mdi-magnify"
label="Search"
single-line
hide-details
></v-text-field>
</v-toolbar>
</template>
<template v-slot:item.name="{ item }">{{ item.name }}</template>
</v-data-table>
</template>
<script>
export default {
name: "variable-selector",
props: ["variables", "map", "index"],
data() {
return {
search: "",
selected: {},
loading: false,
items: [],
headers: [{ text: "Variable name", value: "name", sortable: true }]
};
},
methods: {
itemSelected(selection) {
if (selection.value) {
this.$emit("selected", selection.item); // it always emits var_2 object
} else {
this.$emit("selected", null);
}
},
updateItemsList(variables) {
this.items = Array.from(variables);
}
},
mounted() {
this.updateItemsList(this.variables);
},
watch: {
variables(newValue) {
this.loading = true;
this.updateItemsList(newValue);
this.loading = false;
}
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
如果您遇到错误,每个对象应该是唯一的键值,您想手动告诉每个对象是唯一的
只需添加
item-key="table_header_index"//or name
Run Code Online (Sandbox Code Playgroud)
例如:
<v-data-table
:headers="headers"
:items="items"
show-select
item-key="table_header_index" <-------------------add this line
>
</v-data-table>
Run Code Online (Sandbox Code Playgroud)