0
votes

Pourquoi Vue.js @input n'est-il pas tiré lorsque vous cliquez sur le bouton?

Pourquoi Vue.js @input n'est-il pas tiré lorsque vous cliquez sur le bouton?

Lorsque je change code> de la valeur code> directement (cliquez sur l'élément d'entrée et tapez une nouvelle valeur) alerte code> est tiré. p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <input type="text" v-model.number="count" @input="alert">
  <button @click="add">+1</button>
</div>


6 commentaires

Votre alerte est sur la balise d'entrée, pas la balise du bouton. Pourquoi vous attendriez-vous à cliquer sur le bouton pour déclencher une alerte?


Parce que la valeur de changement elle-même devrait déclencher un événement.


Changer @Input à @ CHANGE = "ALERTE ('TEST')"


@ Miloslav21 @Input déclenchera lorsque l'utilisateur saisit quelque chose, pas lorsque la valeur dans cette case change. Vous voudrez utiliser quelque chose comme Watch si vous souhaitez regarder pour le compte pour changer.


Sur une note non liée, vous trouverez un bogue dans votre code où si vous supprimez ce qui est dans la zone de texte et appuyez à nouveau sur la touche "+1", il commence juste à ajouter "1" de l'augmentation du compte. Cela se produit également si vous mettez une lettre au début de ce qui est dans la boîte de saisie. Je pense que le JavaScript ne fait que traiter la valeur comme une chaîne lorsque cela se produit; Vous voudrez probablement gérer cela.


@Jameswhiteley tu as raison. Merci d'avertissement.


3 Réponses :


0
votes

Vous pouvez appeler alerte code> à partir de l'intérieur Ajouter code> Méthode:

p>

add: function() {
  this.count += 1;
  // invoke alert()
  this.alert();
}


4 commentaires

Oui, mais pourquoi n'est-il pas licencié par l'événement de saisie? L'événement d'entrée déclenche lorsque la valeur d'une ,