Vue: Une valeur vide pour la propriété entraîne l'échec de la compilation du modèle

Créé le 18 oct. 2016  ·  3Commentaires  ·  Source: vuejs/vue

Version de vue.js

2.0.3

Lien de reproduction

https://jsfiddle.net/jt3hjuwg/

Étapes à reproduire

Liez un accessoire qui a une chaîne vide comme valeur. Si vous deviez fournir un objet JSON ou la chaîne null cela fonctionnerait, mais si vous utilisez une chaîne vide, le modèle ne sera pas compilé.

Je ne sais pas si ce comportement est attendu dans Vue 2 (il fonctionnait auparavant dans Vue 1). Cependant, cela semble un peu contre-intuitif. Par exemple, si je fournis du contenu en tant que prop côté serveur, je dois vérifier s'il existe et renvoyer la chaîne littérale null sinon.

Qu'est-ce qui est attendu ?

L'application est toujours rendue mais la propriété devient une chaîne vide ou null.

Que se passe-t-il réellement ?

Un avertissement s'affiche dans la console et l'application ne parvient pas à s'afficher.

[Vue warn]: failed to compile template:

<review :review=""></review>

(found in root instance)

Commentaire le plus utile

@fnlctrl
Comment feriez-vous avec les accessoires Number ?

Tous les 3 commentaires

Bonjour, merci d'avoir rempli ce problème.

si vous utilisez une chaîne vide, la compilation du modèle échouera.

Vous ne définissez pas une chaîne vide avec <review :review=""></review> .
La méthode correcte est : <review :review="''"></review> . Rappelez-vous que v-bind attend des expressions javascript. https://jsfiddle.net/fnlCtrl/jt3hjuwg/1/

Par exemple, si je fournis du contenu en tant que prop côté serveur, je dois vérifier s'il existe et renvoyer la chaîne littérale null sinon.

Vous n'avez qu'à lui donner une chaîne vide '' , c'est tout.

N'y a-t-il pas une meilleure façon pour Vue de gérer cela ? Ou peut-être fournir un meilleur type de gestion des erreurs au lieu de vider la moitié du DOM à l'intérieur de la console lorsque cela se produit ?

@fnlctrl
Comment feriez-vous avec les accessoires Number ?

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