Open czf1998 opened 4 years ago
2.6.10
https://jsfiddle.net/vuetest/c5uw870y/3/
1、click jsfiddle link 2、you will see result is {{msg}},is incorrect
render template tag as html element, dom looks like that:
<div> <p> <template> #document-fragment <span>{{msg}}</span> </template> </p> </div>
template tag disappeared
<div> <p> <span>{{msg}}</span> </p> </div>
when v-pre used at the staticRoot, template render correctly, fixed by #8146. see this also: https://jsfiddle.net/vuetest/c5uw870y/5/
when v-pre does not used at the staticRoot, template tag will be skip, source code in vue/src/compiler/codegen/index.js is:
vue/src/compiler/codegen/index.js
export function genElement (el: ASTElement, state: CodegenState): string { // ... } else if (el.tag === 'template' && !el.slotTarget && !state.pre) { // template tag run into here, directively render it's children instead of him return genChildren(el, state) || 'void 0' } // ...
how to slove this problem:
export function genElement (el: ASTElement, state: CodegenState): string { if (el.parent) { el.pre = el.pre || el.parent.pre; // add this line state.pre = el.pre; }
I'm not familiar with creating pr with test, someone else can help me?
it seems that it was fixed in 2.5.18-beta-0 but regressed right after in 2.5.18
FYI @czf1998 and @pkf1994
Version
2.6.10
Reproduction link
https://jsfiddle.net/vuetest/c5uw870y/3/
Steps to reproduce
1、click jsfiddle link 2、you will see result is {{msg}},is incorrect
What is expected?
render template tag as html element, dom looks like that:
What is actually happening?
template tag disappeared
when v-pre used at the staticRoot, template render correctly, fixed by #8146. see this also: https://jsfiddle.net/vuetest/c5uw870y/5/
when v-pre does not used at the staticRoot, template tag will be skip, source code in
vue/src/compiler/codegen/index.js
is:how to slove this problem:
I'm not familiar with creating pr with test, someone else can help me?