Vue: le modèle en v interrompt la sélection

Créé le 3 juin 2016  ·  7Commentaires  ·  Source: vuejs/vue

Version Vue.js

1.0.24

Lien de reproduction

https://github.com/kucherenkovova/piano/tree/BUG-report-vue
allez dans le dossier de démonstration et ouvrez index.html

Étapes à suivre pour reproduire

Entrez quelque chose dans le champ de saisie Email layout .
Placez le curseur au milieu de votre texte.
Appuyez sur retour arrière sur le clavier virtuel.

Qu'est-ce qui est attendu?

Le texte sera supprimé à la position du curseur.

Que se passe-t-il réellement?

Le texte est supprimé de la fin de la chaîne. selectionStart attribut

PS Vous pouvez le tester sur d'autres éléments d'entrée qui n'ont pas de v-model dessus, tout fonctionnera bien.

bug

Commentaire le plus utile

Je n'avais pas Internet hier 😢 J'espère pouvoir le faire ce soir

Tous les 7 commentaires

Salut!

Merci d'avoir signalé le problème 😄. Veuillez suivre les consignes de signalement des problèmes et fournir un JSFiddle ou JSBin minimal contenant un ensemble d'étapes reproductibles pouvant conduire au comportement que vous avez décrit.

J'ai cloné votre repo et l'ai testé sur chrome, cela fonctionne bien. La prochaine fois, fournissez une simple reproduction. Les gens ne peuvent pas parcourir l'ensemble de votre application pour vous aider ...

Merci pour les commentaires. Je vais bientôt fournir un lien gh-pages. Il est impossible de reproduire le bogue sur le codepen ou jsfiddle en raison de la nature de Piano.js.

Je vois, dans ce cas, cela peut être dû à Piano.js. Ce serait génial si vous pouviez créer une repro sans pianojs 👍

@posva Salut encore! Voici un codepen avec repro
Étapes à suivre pour reproduire:

  1. Insérer du texte dans la première entrée
  2. Sélectionnez du texte
  3. Cliquez sur un bouton à côté de votre entrée

En attente de votre réponse!

Merci! J'ai trouvé le bogue. La mise à jour réinitialise ces valeurs, donc les mettre en cache ici et les ramener là-bas résout réellement le problème. Je ne suis pas sûr de savoir comment tester cela. Je devrai peut-être écrire un test e2e

PS: je fais ça demain, je vais dormir 😴

Je n'avais pas Internet hier 😢 J'espère pouvoir le faire ce soir

J'ai enfin récupéré Internet. J'ai du mal à créer un test qui se rompt en tant que test unitaire. Je vais réessayer aujourd'hui avec un test e2e bien que ce soit un exagéré. L'appel de la méthode blur sur l'entrée ne se comporte pas de la même manière que le faire.
Le correctif que j'ai trouvé n'est pas de définir la valeur d'entrée si elle n'a pas changé au flou. Il ajoute essentiellement _toString(self._watcher.value) !== el.value aux conditions ici

Cette page vous a été utile?
0 / 5 - 0 notes