#vue.js #vuejs2 #vuetify.js
#vue.js #vuejs2 #vuetify.js
Вопрос:
Я пытаюсь отобразить изображения в столбце таблицы данных Vuetify, но изображение не отображается в нужном слоте и показывает только URL изображения, например «9384053.jpg «. Как отобразить изображение, используя слоты в Vuetify?
Сегмент — это массив, содержащий URL-адреса изображений, такие как 93034.jpg , 9348903.jpg и т.д. Я пытаюсь отобразить только первое изображение, например, сегмент [0] с образцом вывода 846454.jpg .
<v-card>
<v-card-title>
Animals
<v-spacer></v-spacer>
</v-card-title>
<v-data-table
:headers="headers"
:items="entries"
:items-per-page="12"
class="elevation-3"
:multi-sort="true"
mobile-breakpoint
:search="search"
>
<template v-slot:item.Image="{ item }">
<img :src="require(`${item.Image}`)" style="width: 50px; height: 50px" />
</template>
</v-data-table>
</v-card>
Вот файл сценария
<script>
import firebase from '../firebaseConfig';
const db = firebase.database().ref('/');
export default {
name: 'Animals',
data: () => ({
search: '',
entries: [],
headers: [
{ text: 'ID', value: 'ID' },
{ text: 'RFID', value: 'RFID' },
{ text: 'Image', value: 'Segment[0]' },
{ text: 'Age', value: 'Age Years' },
{ text: 'Weight', value: 'Weight' },
],
}),
methods: {
readAnimals() {
db.once('value', (snapshot) => {
snapshot.forEach((doc) => {
const dataRetrieve = doc.val();
this.$data.entries.push({
ID: dataRetrieve.ID,
RFID: dataRetrieve.RFID,
'Age Years': dataRetrieve['Age Years']
Weight: dataRetrieve.Weight,
Length_History: dataRetrieve['Length_History'],
Length: dataRetrieve.Length,
Tag: dataRetrieve.Tag,
Head: dataRetrieve.Head,
Segment: dataRetrieve.Segment,
});
});
return this.$data.entries;
}).catch((error) => {
console.log('error getting documents', error);
});
},
},
mounted() {
this.readAnimals();
},
};
</script>
Ответ №1:
<template v-slot:item.Image="{ item }">
<img :src="item.Image" style="width: 50px; height: 50px" />
</template>
Я думаю, вы должны связать его таким образом.
Комментарии:
1. это работает. просто нужно заменить изображение на Segment [0]
2. Извините, я не видел этого в опубликованном коде, но я надеюсь, что мой ответ дал вам представление о том, как привязать изображение. Если ответ работает, попробуйте и примите его.
Ответ №2:
Кажется, это помогает
<template v-slot:item.Segment[0]="{item}">
<img :src="item.Segment[0]" style="width: 50px; height: 50px" />
</template>