diff --git a/packages/uni-template-compiler/__tests__/compiler-extra.spec.js b/packages/uni-template-compiler/__tests__/compiler-extra.spec.js index 3533daee0048cb9668ab8f061a22554df99ae887..d8686cfd9efad09bf81428b5aa30bdf09337877c 100644 --- a/packages/uni-template-compiler/__tests__/compiler-extra.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler-extra.spec.js @@ -737,6 +737,16 @@ describe('mp:compiler-extra', () => { '', 'with(this){var l0=array();if(!_isMounted){e0=function($event,item){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=_temp.eventParams||_temp["event-params"],item=_temp2.item;var _temp,_temp2;return test(item)}}$mp.data=Object.assign({},{$root:{l0:l0}})}' ) + assertCodegen( + '{{item}}', + '{{item}}', + 'with(this){var l0=array();if(!_isMounted){e0=function($event,item){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=_temp.eventParams||_temp["event-params"],item=_temp2.item;var _temp,_temp2;return test(item)}}$mp.data=Object.assign({},{$root:{l0:l0}})}' + ) + assertCodegen( + '{{get(item)}}', + '{{item.m0}}', + 'with(this){var l0=__map(array(),function(item,index){var $orig=__get_orig(item);var m0=get(item);return{$orig:$orig,m0:m0}});if(!_isMounted){e0=function($event,item){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=_temp.eventParams||_temp["event-params"],item=_temp2.item;var _temp,_temp2;return test(item)}}$mp.data=Object.assign({},{$root:{l0:l0}})}' + ) }) it('generate bool attr', () => { assertCodegen( diff --git a/packages/uni-template-compiler/lib/script/traverse/data/event.js b/packages/uni-template-compiler/lib/script/traverse/data/event.js index c9b601cdf2f60100402898c46f007d574fc67b8e..2ec5b812d3e0ce1d8c05f556b640229788001b91 100644 --- a/packages/uni-template-compiler/lib/script/traverse/data/event.js +++ b/packages/uni-template-compiler/lib/script/traverse/data/event.js @@ -520,8 +520,7 @@ module.exports = function processEvent (paths, path, state, isComponent, tagName ret.push( t.objectProperty( t.stringLiteral(ATTR_DATA_EVENT_PARAMS), - // 直接使用对象格式微信小程序编译会报错 - t.stringLiteral(`{{({${params.join(',')}})}}`) + t.objectExpression(params.map(param => t.objectProperty(t.identifier(param), t.identifier(param), false, true))) ) ) }