#javascript #arrays #vue.js
Вопрос:
У нас есть Vue.js проект с пользовательской таблицей, привязанной к массиву. Это выглядит следующим образом:
Ключевая часть HTML-кода выглядит следующим образом:
<InfiniteScroll ref="scroller" :disable="finished" @load="onLoad">
<swipeable-table
v-if="waitingList.length"
:headers="headers"
:items="waitingList"
:loading="loading"
custom-width
outerBorder
>
<template slot="rows" slot-scope="{ item: booking }">
<tr>
<td>{{ 0 }}</td>
<td></td>
<td></td>
<td>{{ fullName(booking.user) }}</td>
<td>{{ unitName(booking.search_by) }}</td>
...
</tr>
</template>
</swipeable-table>
...
</InfiniteScroll>
Это waitingList
массив объектов.
Часть кода JavaScript выглядит следующим образом:
methods: {
fullName(user) {
return fullName.by(user, null, true)
},
unitName(unit) {
return unit?.name ?? ''
},
...
Таблица прокручивается, то есть она показывает 30 элементов в начале и после прокрутки следующих 30 элементов (30 30=60) и так далее.
Массив объектов выглядит следующим образом:
Есть ли способ использовать какой-либо метод JavaScript для его достижения? Если нет, то как я могу это сделать?
Комментарии:
1. Я вижу, что область действия слота=»{ товар: бронирование }» может содержать другие данные. Обычно у него есть что-то вроде индекса (в таблице данных vuetify он есть) . Попробуйте проверить данные, предоставляемые областью действия слота, возможно, есть данные индекса, которые вы могли бы использовать
2. Я только что обновил свой пост. Пожалуйста, взгляните на это.
3. Вы можете использовать
booking.id
4. пробовать
slot-scope="{ item: booking, index:index }"
5. @Laxmikant Dange Да! Пожалуйста, отвечайте на мой вопрос обычным способом, и я отмечу его как правильный. Большое спасибо!
Ответ №1:
вы можете добавить индекс так же, как элемент в шаблоне.
<template slot="rows" slot-scope="{ item: booking,index:index }">
<tr>
<td>{{ index }}</td>
<td></td>
<td></td>
<td>{{ fullName(booking.user) }}</td>
<td>{{ unitName(booking.search_by) }}</td>
...
</tr>
</template>