In “data” There is an array of Names: [‘Bogdan’, ‘Ruslan’ …]. How to make a random name get selected from the Names array and inserted into the <p> Names </ p> tag?
I tried to do it like this — <p>{{Names[Math.floor(Math.random() * Names.length)]}}</p> but for some reason it does not work
<f7-list
media-list
virtual-list
:virtual-list-params="{ items, renderExternal, height: $theme.ios ? 63 : ($theme.md ? 73 : 46)}"
>
<ul>
<f7-list-item
v-for="(item, index) in vlData.items"
:key="index"
media-item
link="#"
:title="item.title"
:subtitle="item.subtitle"
:style="`top: ${vlData.topPosition}px`"
>
<f7-block strong>
<p>Name:{{Names[Math.floor(Math.random() * Names.length)]}}</p>
</f7-block>
<f7-block>
<p>Surname:</p>
</f7-block>
</f7-list-item>
</ul>
</f7-list>
<script>
export default {
data() {
Names: [ "Bogdan", "Vladimir", "Nikolay", "Stepan", "Sergey", "Igor", "Vladislav", "Miroslav", "Nikita", "Alexander", "Ivan", "Ruslan", "Maria", "Victoria", "Angella", "Zhanna", "Irina", "Marina", "Yulya", "Olya", "Dasha", "Natasha", "Masha"]
const items = []
for (let i = 1; i <= 10; i += 1) {
items.push({
title: `UserID ${i}`,
// subtitle: `SurName ${i}`,
});
}
return {
items,
vlData: {
items: [],
},
};
},
methods: {
renderExternal(vl, vlData) {
this.vlData = vlData;
},
randomName(){
},
loadMore(event, done) {
window.location.reload();
}
},
}
</script>
Advertisement
Answer
You are not returning Names in your data object.
Try this
return {
Names,
items,
vlData: {
items: [],
},
};