diff --git a/packages/uni-template-compiler/__tests__/compiler.spec.js b/packages/uni-template-compiler/__tests__/compiler.spec.js index dc9dc5aac9a0cefdefd7ff1bd323ec648055e9a1..9b999e9a47b6b5e51a184403931a8e03a137f900 100644 --- a/packages/uni-template-compiler/__tests__/compiler.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler.spec.js @@ -329,8 +329,8 @@ describe('mp:compiler', () => { // v-for assertCodegen( 'test', - 'test', - 'with(this){if(!_isMounted){e0=function($event,item){var _temp=arguments[arguments.length-1].currentTarget.dataset,_temp2=(_temp.eventParams||_temp["event-params"])[0],item=_temp2.item;var _temp,_temp2;return $test.test(item)}}}' + 'test', + 'with(this){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.test(item)}}}' ) // tricky symbols in args // 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 12760adf673f8d0e450937efcd4f651b5b7c06b6..698c0815140645fb88edfcc54d1f281aa3fb8320 100644 --- a/packages/uni-template-compiler/lib/script/traverse/data/event.js +++ b/packages/uni-template-compiler/lib/script/traverse/data/event.js @@ -347,7 +347,7 @@ function parseEvent (keyPath, valuePath, state, isComponent, isNativeOn = false, const datasetUid = funcPath.scope.generateDeclaredUidIdentifier().name const paramsUid = funcPath.scope.generateDeclaredUidIdentifier().name const dataset = ATTR_DATA_EVENT_PARAMS.substring(5) - const code = `var ${datasetUid}=arguments[arguments.length-1].currentTarget.dataset,${paramsUid}=(${datasetUid}.${dataset.replace(/-([a-z])/, (_, str) => str.toUpperCase())}||${datasetUid}['${dataset}'])[0],${params.map(item => `${item}=${paramsUid}.${item}`).join(',')}` + const code = `var ${datasetUid}=arguments[arguments.length-1].currentTarget.dataset,${paramsUid}=${datasetUid}.${dataset.replace(/-([a-z])/, (_, str) => str.toUpperCase())}||${datasetUid}['${dataset}'],${params.map(item => `${item}=${paramsUid}.${item}`).join(',')}` funcPath.node.body.body.unshift(parser.parse(code).program.body[0]) } methods.push(addEventExpressionStatement(funcPath, state, isComponent, isNativeOn)) @@ -478,8 +478,8 @@ module.exports = function processEvent (paths, path, state, isComponent, tagName ret.push( t.objectProperty( t.stringLiteral(ATTR_DATA_EVENT_PARAMS), - // 使用数组格式,直接使用对象格式微信小程序编译会报错 - t.stringLiteral(`{{[{${params.join(',')}}]}}`) + // 直接使用对象格式微信小程序编译会报错 + t.stringLiteral(`{{({${params.join(',')}})}}`) ) ) }