I have a method where I need to get the number of each table, but, the return is always the length of the property and not its value. If I leave only one table the method correctly returns the value of the property, however if I add more tables in the object, the return will be the length of tables that exist.
let app = new Vue({
el: '#app',
data: {
tituloApp: 'Acompanhamento de mesas',
escolhaMesa: 'Escolher a mesa',
mesas = {
idMesa: {
consumo: [
{
nome: 'suco maracujá',
quantidade: 1,
valor: 5.50
},
{
nome: 'guaraná coca-cola',
quantidade: 1,
valor: 3.00
},
{
nome: 'feijoada',
quantidade: 2,
valor: 12.00
}
],
numMesa: 1
},
idMesa: {
consumo: [
{
nome: 'água',
quantidade: 2,
valor: 2.50
},
{
nome: 'guaraná fanta-uva',
quantidade: 2,
valor: 3.00
},
{
nome: 'porção de frios',
quantidade: 2,
valor: 23.50
}
],
numMesa: 2
}
},
methods: {
MostraMesa: function(mesa) {
let idMesa = this.mesas.idMesa.numMesa; // retorna o length
}
}
})
HTML:
<div id="mostra-mesa">
<div>
<p>{{ produtos }}</p>
<ul>
<li v-for="nomes in mesas">{{ nomes.consumo.nome}}</li>
</ul>
</div>
<div>
<p>{{ quantidade }}</p>
<ul>
<li v-for="consumos in mesas">{{ consumos.consumo.quantidade }}</li>
</ul>
</div>
<div>
<p>{{ vlrUnit }}</p>
<ul>
<li v-for="valores in mesas">{{ valores.consumo.valor }}</li>
</ul>
</div>
<div>
<p>{{ vlrTotal }}
<input type="number" readonly v-model="vlrConta" @click="MostraMesa">
</p>
</div>
</div>