Vue: Vue.js muss nicht korrekt gerendert werden, nachdem das Root-Element eingerückt wurde

Erstellt am 29. Apr. 2018  ·  4Kommentare  ·  Quelle: vuejs/vue

Ausführung

2.5.16

Reproduktionslink

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

Schritte zum Reproduzieren

Dieses Problem tritt auf, wenn das Stammelement nicht eingerückt ist und der Schnurrbart in mehrere Zeilen aufgeteilt ist.

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

Nur wenn das Wurzelelement eingerückt ist, wird der Schnurrbart korrekt gerendert.

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

Was auch funktioniert, ist, wenn Schnurrbart in eine einzelne Zeile gesetzt wird und das Wurzelelement nicht eingerückt wird.

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

Was wird erwartet?

Der Schnurrbart sollte Daten binden

Was passiert eigentlich?

Der Schnurrbart wird im Klartext gerendert


Ich wollte nur meinen Code verschönern, also teilte ich den Schnurrbart in mehrere Zeilen und entfernte den Einzug des Wurzelelements.

bug has PR

Hilfreichster Kommentar

Warum sollte jemand seinen Code so schreiben?

Alle 4 Kommentare

funktioniert mit einem einzelnen Leerzeichen zwischen <template> und root element :

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

tut nicht ohne Leerzeichen zwischen ihnen:

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

Warum sollte jemand seinen Code so schreiben?

@syntacticsolutions Das spielt keine Rolle, Tatsache ist, dass es ein Fehler ist, oder?

Danke @DanielSharkov , es sollte ein Fehler sein.

Die Hauptursache für unterschiedliches Verhalten beim Einrücken ist unten: 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

Vielleicht sollten wir \ r hinzufügen? Muster in der Textinterpolation regexp:

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

bdedardel picture bdedardel  ·  3Kommentare

bfis picture bfis  ·  3Kommentare

Jokcy picture Jokcy  ·  3Kommentare

lmnsg picture lmnsg  ·  3Kommentare

robertleeplummerjr picture robertleeplummerjr  ·  3Kommentare