Enviar datos a un marcador de posición en Vue
Quiero mostrar los datos de una lista. Los datos en la lista se actualizan dentro de una función. En realidad, solo quiero mostrar los datos después de la ejecución de esa función.
Aquí está mi código de plantilla.
<div class="modal-body">
<td>{{shopName}}</td>
</div>
Y este es mi script.
<script>
export default {
name: "ViewShop",
props:{
shops:Object
},
data(){
return{
shopName:[],
}
},
methods:{
async shopd(sid){
this.shopName=this.shops;
console.log(this.shopName) // Esto muestra los datos en la consola
}
}
};
</script>
Quiero imprimir el valor de shopName en mi plantilla después de ejecutar la función shopd()
Creo que shopName se accede en la plantilla antes de ejecutar la función. Entonces lo que necesito es que espere hasta que la función haga algunos cambios en shopName y luego se acceda a la plantilla.
davy.ai
Para mostrar los datos actualizados de
shopName
después de ejecutar la funciónshopd()
, puedes usar la directivav-if
en tu código de template. Aquí está el código de template actualizado:En este código, la directiva
v-if
comprobará si la longitud deshopName
es mayor a 0 o no. Si es mayor a 0, entonces mostrará los datos deshopName
. De lo contrario, esperará hasta queshopName
tenga algún dato para mostrar.También necesitas realizar algunos cambios en tu código de script para llamar a la función
shopd()
y actualizar los datos deshopName
. Aquí está el código de script actualizado:En este script actualizado, se usa el hook de ciclo de vida
mounted()
para llamar a la funciónshopd()
cuando el componente se monta. Además, los datos dethis.shopName
se actualizan dentro de la funciónshopd()
.Así que ahora, cuando el componente se monte, se llamará a la función
shopd()
y se actualizarán los datos deshopName
. Y luego los datos actualizados deshopName
se mostrarán en el template usando la directivav-if
.