Pourquoi la valeur antérieure n'est-elle pas transmise à la composante VUE?
passa une valeur ancienne passée ici p>
p>
<template>
<div>
<input
type="text"
autocomplete="off"
v-model="query"
v-on:keyup="autoComplete"
class="form-control js-region-name"
name="regionName"
value=""
>
<input
type="hidden"
class="form-control js-region-id"
name="regionId"
value="enteredRegion">
<div class="panel-footer" v-if="results.length">
<ul class="list-group select-region">
<li class="list-group-item list-region" v-for="result in results" v-on:click="selectRegion(result)">
{{ result.name }}
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data() {
return {
results: [],
query: '',
}
},
methods: {
autoComplete() {
this.results = [];
if(this.query.length > 2){
axios.get('/api/regions',{params: {_limit: 2, query: this.query}}).then(response => {
this.results = response.data;
});
}
},
selectRegion(result) {
let inputWithRegionName = document.querySelector('.js-region-name');
let inputWithRegionId = document.querySelector('.js-region-id');
let listRegions = document.querySelector('.panel-footer');
inputWithRegionName.value = result.name;
inputWithRegionId.value = result.id;
listRegions.hidden = true;
}
}
}
</script>3 Réponses :
La syntaxe de Mustache est d'interpoler du texte, de ne pas passer des accessoires.
Pour passer des accessoires ou des attributs de réglage aux composants enfants (y compris des éléments HTML natifs), vous devez utiliser V-BIND code> directive (code> DOC ). P>
Comme @flame a signalé, vous devez également définir l'option apps code> du composant qui reçoive les accessoires ( DOC ).
Lorsque vous créez un composant (comme si vous avez avec maintenant dans votre composant de composant de région autocomplete-région, vous pouvez utiliser la valeur de la requête comme ceci.Quisery code> comme vous l'attendez. p> Dans votre étiquette de composant, vous n'utilisez pas les étiquettes de moustache pour réussir la valeur, vous allez simplement réussir JavaScript normal. Je recommanderais également. Ne pas encoder le JSON à ce moment-là. Vous pouvez toujours l'encoder dans le composant si vous aviez besoin de. P> accessoires code> comme: <autocomplete-region-component :query="old('regionName')">
</autocomplete-region-component>
Droite, vous ne pouvez pas passer à un accessoire avec le même nom que la propriété de données. Renommez votre propriété de données locale, ou la prop.
Un exemple peut-il paraître s'il vous plaît, sinon vous ne pouvez pas comprendre la syntaxe. Je mettez à jour le code VUE dans la poste principale
Vous devez définir un accessoire et définir les données sur ce transfert
lorsque vous passez des données dans une étiquette de composant via le Vue désactive les accessoires mutatings passés du parent chez l'enfant, vous devez effectuer une copie locale de ce support dans l'objet de données réactif p> < Pré> xxx pré> supposant une vue de lame comme si p> et des itinéraires comme p> C'est ce que vous obtiendriez si des données non valides sont publiées
V-Bind code> sténographie : code> ces données sont appelés accessoires et doivent être définis comme tels P>
p> p>
Merci pour l'explication! Mais pourquoi l'ancienne valeur n'est pas affichée? Après la soumission et la validation de formulaire non terminée
Parce que vous devez définir
accessoires code>? Lisez les documents de Vue avant de passer à cette question