Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
94e9820d
U
uni-app
项目概览
DCloud
/
uni-app
2 个月 前同步成功
通知
715
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
94e9820d
编写于
8月 18, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 修复小程序 v-for 嵌套 v-if 内使用到全局方法处理当前作用域内数据时报错的问题 question/105010
上级
c70691e2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
2 deletion
+8
-2
packages/uni-template-compiler/__tests__/compiler-extra.spec.js
...es/uni-template-compiler/__tests__/compiler-extra.spec.js
+5
-0
packages/uni-template-compiler/lib/script/traverse/member-expr.js
.../uni-template-compiler/lib/script/traverse/member-expr.js
+3
-2
未找到文件。
packages/uni-template-compiler/__tests__/compiler-extra.spec.js
浏览文件 @
94e9820d
...
...
@@ -722,5 +722,10 @@ describe('mp:compiler-extra', () => {
'
<block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view><block wx:if="{{item.m0}}"><view><block wx:if="{{item.m1}}"><view>{{item.m2}}</view></block></view></block></view></block>
'
,
'
with(this){var l0=__map(list,function(item,index){var $orig=__get_orig(item);var m0=test(item.id);var m1=m0?test(item.type):null;var m2=m0&&m1?test("item"):null;return{$orig:$orig,m0:m0,m1:m1,m2:m2}});$mp.data=Object.assign({},{$root:{l0:l0}})}
'
)
assertCodegen
(
'
<view v-for="(item,index) in list" :key="index"><view v-if="Object.values(item.list).length">{{test(item.list)}}</view></view>
'
,
'
<block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view><block wx:if="{{item.g0.length}}"><view>{{item.m0}}</view></block></view></block>
'
,
'
with(this){var l0=__map(list,function(item,index){var $orig=__get_orig(item);var g0=Object.values(item.list);var m0=g0.length?test(item.list):null;return{$orig:$orig,g0:g0,m0:m0}});$mp.data=Object.assign({},{$root:{l0:l0}})}
'
)
})
})
packages/uni-template-compiler/lib/script/traverse/member-expr.js
浏览文件 @
94e9820d
...
...
@@ -4,7 +4,8 @@ const traverse = require('@babel/traverse').default
const
{
VAR_ROOT
,
IDENTIFIER_METHOD
,
IDENTIFIER_FILTER
IDENTIFIER_FILTER
,
IDENTIFIER_GLOBAL
}
=
require
(
'
../../constants
'
)
function
isMatch
(
name
,
forItem
,
forIndex
)
{
...
...
@@ -69,7 +70,7 @@ function findTest (path, state) {
const
objectName
=
node
.
object
.
name
const
property
=
node
.
property
const
propertyName
=
property
.
name
if
(
objectName
===
VAR_ROOT
||
(
names
.
includes
(
objectName
)
&&
(
propertyName
===
IDENTIFIER_METHOD
||
propertyName
===
IDENTIFIER_FILTER
)))
{
if
(
objectName
===
VAR_ROOT
||
(
names
.
includes
(
objectName
)
&&
(
propertyName
===
IDENTIFIER_METHOD
||
propertyName
===
IDENTIFIER_FILTER
||
propertyName
===
IDENTIFIER_GLOBAL
)))
{
let
property
traverse
(
testOrig
,
{
noScope
:
true
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录