Vue: لم يتم عرض الشارب Vue.js بشكل صحيح فقط بعد مسافة بادئة لعنصر الجذر

تم إنشاؤها على ٢٩ أبريل ٢٠١٨  ·  4تعليقات  ·  مصدر: vuejs/vue

الإصدار

2.5.16

رابط الاستنساخ

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

خطوات التكاثر

تحدث هذه المشكلة ، عندما لا يتم وضع مسافة بادئة لعنصر الجذر ويتم تقسيم الشارب إلى عدة أسطر.

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

فقط عندما يتم وضع مسافة بادئة لعنصر الجذر ، يتم تقديم الشارب بشكل صحيح.

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

ما ينجح أيضًا هو وضع الشارب في سطر واحد وعدم وضع مسافة بادئة لعنصر الجذر.

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

ما هو متوقع؟

يجب أن يربط الشارب البيانات

ما الذي يحدث بالفعل؟

يحصل الشارب على نص عادي


أردت فقط تجميل الكود الخاص بي ، لذلك قسمت الشارب إلى عدة أسطر وأزلت المسافة البادئة لعنصر الجذر.

bug has PR

التعليق الأكثر فائدة

لماذا يكتب أي شخص رمزه بهذه الطريقة؟

ال 4 كومينتر

تعمل بمسافة واحدة بين <template> و root element :

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

لا يوجد مسافات بينهما:

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

لماذا يكتب أي شخص رمزه بهذه الطريقة؟

syntacticsolutions هذا لا يهم ، الحقيقة هل هذا خطأ ، أليس كذلك؟

شكرًا DanielSharkov ، يجب أن يكون خطأ.

السبب الجذري للسلوك المختلف مع المسافة البادئة هو أدناه: 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

ربما يجب أن نضيف \ r؟ نمط في استيفاء النص التعبير العادي:

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات