diff --git a/packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js b/packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
index f6ee2963b7191cfc6d1af82cc0f505aa00207572..c4805706cee8cea228eb4c7d698ff83d46684d62 100644
--- a/packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
+++ b/packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
@@ -142,6 +142,14 @@ describe('mp:compiler-mp-weixin', () => {
scopedSlotsCompiler: 'augmented'
}
)
+ assertCodegen(
+ '{{item}}',
+ '{{$root.m1}}',
+ 'with(this){var m0=$hasScopedSlotsParams("551070e6-1");var m1=m0?$getScopedSlotsParams("551070e6-1","default","item"):null;$mp.data=Object.assign({},{$root:{m0:m0,m1:m1}})}',
+ {
+ scopedSlotsCompiler: 'augmented'
+ }
+ )
assertCodegen(
'{{getValue(item.text)}}',
'{{$root.m1}}',
diff --git a/packages/uni-template-compiler/lib/script/traverse/resolve-scoped-slots.js b/packages/uni-template-compiler/lib/script/traverse/resolve-scoped-slots.js
index f85252ea9513737217fbc981ba15aa5ceb5fde0b..039a7f6ea289f4583026ecc1555d04d77006a854 100644
--- a/packages/uni-template-compiler/lib/script/traverse/resolve-scoped-slots.js
+++ b/packages/uni-template-compiler/lib/script/traverse/resolve-scoped-slots.js
@@ -64,7 +64,7 @@ module.exports = function getResolveScopedSlots (parent, state) {
updateIds(vueId, slot, params.node.name)
}
const fnBody = fn.get('value.body')
- if (needSlotMode(fnBody, ids)) {
+ if (state.options.scopedSlotsCompiler === 'augmented' || needSlotMode(fnBody, ids)) {
if (replaceId(fnBody, ids)) {
const orgin = fnBody.get('body.0.argument')
const elements = orgin.get('elements')