From 7691d88860c7e27936ce4ec2b2137d587e915c8b Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Sat, 18 Jan 2020 12:55:19 +0800 Subject: [PATCH] fix(v3): v-for without child element #1206 --- .../compiler-app-plus-extra.service.spec.js | 22 +++++++++++-------- .../uni-template-compiler/lib/app/service.js | 6 ++++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js b/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js index 9e7a6a4b3..038465efe 100644 --- a/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js @@ -61,15 +61,19 @@ describe('codegen', () => { assertCodegen( '
', `with(this){return _c('div',[_l((_$s(1,'f',{forItems:items})),function(item,$10,$20,$30){return [(_$s(("2-"+$30),'i',item.sub))?_c('span',{key:_$s(1,'f',{forIndex:$20,keyIndex:0,key:1+'-0'+$30})}):_e()]})],2)}` - ) - assertCodegen( - '', - `with(this){return _c('view',[_l((_$s(1,'f',{forItems:arr,fill:true})),function(item,index,$20,$30){return [_v((_$s(("1-"+$30),'t0',_s(item))))]})],2)}` - ) - assertCodegen( - '{{item}}', - `with(this){return _c('view',[_l((_$s(1,'f',{forItems:arr,fill:true})),function(item,index,$20,$30){return [_v((_$s(("1-"+$30),'t0',_s(item))))]})],2)}` - ) + ) + assertCodegen( + '', + `with(this){return _c('view',[_l((_$s(1,'f',{forItems:arr,fill:true})),function(item,index,$20,$30){return [_v((_$s(("1-"+$30),'t0',_s(item))))]})],2)}` + ) + assertCodegen( + '{{item}}', + `with(this){return _c('view',[_l((_$s(1,'f',{forItems:arr,fill:true})),function(item,index,$20,$30){return [_v((_$s(("1-"+$30),'t0',_s(item))))]})],2)}` + ) + assertCodegen( + '{{item}}', + `with(this){return _c('view',[_l((_$s(1,'f',{forItems:arr,fill:true})),function(item,index,$20,$30){return [(_$s(("2-"+$30),'i',item==3))?[_v((_$s(("2-"+$30),'t0',_s(item))))]:_e()]})],2)}` + ) }) it('generate text with multiple statements', () => { assertCodegen( diff --git a/packages/uni-template-compiler/lib/app/service.js b/packages/uni-template-compiler/lib/app/service.js index 4f07200c5..fc46da050 100644 --- a/packages/uni-template-compiler/lib/app/service.js +++ b/packages/uni-template-compiler/lib/app/service.js @@ -92,7 +92,11 @@ function checkAutoFill (el) { el.tag === 'template' || el.tag === 'block' ) && - !el.children.find(child => child.type === 1) + !el.children.find(child => + child.type === 1 && + child.tag !== 'template' && + child.tag !== 'block' + ) ) { return true } -- GitLab