Как обновить асинхронные элементы в b-таблице из Bootstrap-Vue, повторно используя функцию поставщика элементов? - PullRequest
0 голосов
/ 02 ноября 2018

Я использую Bootstrap-Vue v2.0.0-rc.11 и просто не могу понять, как обновить содержимое таблицы. Я уверен, что это тривиально.

Я извлекаю свой контент из бэкэнда с помощью функции поставщика предметов.

        <b-table
                 :items="myProvider"
        >

Первоначальный вызов прекрасно работает со следующим методом.

export default {
    methods: {
        myProvider(ctx) {
            let promise = axios.get('/backend?currentPage=' + ctx.currentPage);

            return promise.then((response) => {
                return(response.items || []);
            });
        },

Чтобы дублировать элемент строки, я открываю модальное окно, чтобы ввести новое имя. Я делаю бэкэнд-вызов для дублирования, который работает хорошо. Теперь я хочу обновить содержимое, отображаемое в таблице с новым элементом. Как мне это сделать?

Самым простым, что я могу придумать, было бы снова вызвать функцию поставщика предметов (здесь: «myProvider»). Я могу сделать это из модального, но я не могу предоставить правильный параметр (здесь: «ctx»).

Есть ли событие для запуска / выброса для повторного вызова внутреннего вызова?

Я пробовал такие вещи, как:

this.$refs.nameOfTable.$forceUpdate()

this.$refs.nameOfTable.$emit('XXX') // XXX = placeholder for various events

Любая подсказка приветствуется! Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

Он скрыт в документах, но это просто простой вызов refresh () для ссылки на таблицу.

<b-table ref="table" ... ></b-table>
this.$refs.table.refresh();

Из Обновления данных на основе событий раздела Документы .

...