Vue: Vue.js mustach n'est pas correctement rendu seulement après l'indentation de l'élément racine

Créé le 29 avr. 2018  ·  4Commentaires  ·  Source: vuejs/vue

Version

2.5.16

Lien de reproduction

https://codesandbox.io/s/6jnlpno3lw

Étapes à suivre pour reproduire

Ce problème se produit lorsque l'élément racine n'est pas en retrait et que la moustache est divisée en plusieurs lignes.

<template>
<div>
    <p>{{
        myVar
    }}</p>
</div>
</template>

Ce n'est que lorsque l'élément racine est indenté que la moustache est correctement rendue.

<template>
    <div>
        <p>{{
            myVar
        }}</p>
    </div>
</template>

Ce qui fonctionne également, c'est lorsque la moustache est placée sur une seule ligne et que l'élément racine n'est pas en retrait.

<template>
<div>
    <p>{{ myVar }}</p>
</div>
</template>

Qu'attend-on?

La moustache doit lier les données

Que se passe-t-il réellement?

La moustache est rendue en texte brut


Je voulais seulement embellir mon code, j'ai donc divisé la moustache en plusieurs lignes et supprimé le retrait de l'élément racine.

bug has PR

Commentaire le plus utile

Pourquoi quelqu'un écrirait-il son code de cette façon?

Tous les 4 commentaires

fonctionne avec un seul espace entre <template> et root element :

<template> <p>{{
  myVar
}}</p></template>

ne fait pas sans espace entre eux:

<template><p>{{ 
  myVar
}}</p></template>

Pourquoi quelqu'un écrirait-il son code de cette façon?

@syntacticsolutions Cela n'a pas d'importance, c'est un bug, non?

Merci @DanielSharkov , ça devrait être un bug.

La cause première du comportement différent avec indentation est ci-dessous: https://github.com/yyx990803/de-indent/blob/master/index.js#L17 -L24

    if (c === ' ' || c === '\t') {
      type = c
      cur = count(line, type)
      if (cur < min) {
        min = cur
      }
    } else {
      return str

Peut-être devrions-nous ajouter \ r? motif dans l'expression rationnelle d'interpolation de texte:

https://github.com/vuejs/vue/blob/5e3823a5766da1df60481e1e7a20f36d08e716ce/src/compiler/parser/text-parser.js#L6 -L13

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