本人使用WX:FOR 循环渲染了第二层标签,右下角有个圆形ICON标签,默认初始化是不显示的。第二层的每个标签都会跟着一些问题。本人的设计是第三层问题只要被回答了,ICON标签就显示。这样意味着,第二层标签在渲染的时候要赋予每个ICON标签一个ID值,并唯一标识其是否显示,比如用wx:if来搞定。可本人在如何充分利用WX:FOR时生成这些需具备能控制其是否显示的唯一标识的时候没想到有什么有效的办法?请高人指定!谢谢。注意是;第三层问题回答了,就显示对应的第二册标签。当然第二层标签点击了,显示自己相关的问题。如下下图中,6个标签对应6组问题。麻烦了。
下面写的这个wx:if="out{{index+1}}" 貌似是字符串,无法起作用?
WXML:
<view class="layer2box" wx:if="{{isShowOut}}">
<view wx:for="{{outlist}}" class="item-list {{index+1==current?'select':''}}" wx:key="id" bindtap="onClickL2Out" data-id="{{item.id}}">
<view>{{index+1}}_{{item.title}}view>
<icon wx:if="out{{index+1}}" type="success" size="20rpx" color="{{iconcolor}}">icon>
view>
view>
wx:if 成立的条件是 不为空 不为null 不为undefined 不为负数。但是你这样子写 他都是true。
let id = res.currentTarget.dataset.id;
// console.log(id)
this.setData({
current:id,
out1:true,
out2:true,
})
},
wx:if="out{{index+1}}" 因为out是字符串所以不管你index+1是什么,他都是true
wx:if="out{{index+1}}" 不知道out是啥东西,但应该是个变量吧,你得这么写:wx:if="{{out[index+1]}}"
如果你把out1, out2按顺序放到一个数组里,倒是可以用wx:if="{{out[index]}}"这种形式了