【发布时间】:2020-03-09 10:49:03
【问题描述】:
我想知道我在这里做错了什么,据我所知,这是解决方案:Vue: method is not a function within inline-template component tag
但是该方法仍然没有触发。
<b-table
:items="filtered"
:fields="fields"
sort-icon-left
responsive="sm"
@card-click="setUpdate"
>
<template v-slot:head()="data">
<span class="text-info">{{ data.label.toUpperCase() }}</span>
<button @click="$emit('card-click', data)">filter</button>
<input
v-show="data.field.showFilters"
v-model="filters[data.field.key]"
:placeholder="data.label"
/>
</template>
</b-table>
methods: {
setUpdate(field) {
console.log("hello");
console.log(field);
this._originalField = Object.assign({}, field);
field.showFilters = true;
}
}
更新
所以@click 允许我触发事件,但是这导致表格不会使用 showFilters 更改的数据进行更新。多亏了 MattBoothDev,我发现了基于事件的数据刷新,但是现在奇怪的是,这阻止了数据的变化。 IE。如果 field.showFilters 为 true,如果我单击按钮,则为 true。
methods: {
setUpdate(field) {
this._originalField = Object.assign({}, field);
field.showFilters = !field.showFilters;
this.refreshTable();
console.log(field.showFilters);
},
refreshTable() {
this.$root.$emit("bv::refresh::table", "my-table");
}
}
【问题讨论】:
标签: javascript vue.js bootstrap-4 nuxt.js