收藏
回答

WX:FOR的使用问题?

本人使用WX:FOR 循环渲染了第二层标签,右下角有个圆形ICON标签,默认初始化是不显示的。第二层的每个标签都会跟着一些问题。本人的设计是第三层问题只要被回答了,ICON标签就显示。这样意味着,第二层标签在渲染的时候要赋予每个ICON标签一个ID值,并唯一标识其是否显示,比如用wx:if来搞定。可本人在如何充分利用WX:FOR时生成这些需具备能控制其是否显示的唯一标识的时候没想到有什么有效的办法?请高人指定!谢谢。注意是;第三层问题回答了,就显示对应的第二册标签。当然第二层标签点击了,显示自己相关的问题。如下下图中,6个标签对应6组问题。麻烦了。

下面写的这个wx:if="out{{index+1}}" 貌似是字符串,无法起作用?

WXML:

<view class="layer2boxwx:if="{{isShowOut}}">

  <view wx:for="{{outlist}}class="item-list {{index+1==current?'select':''}}wx:key="idbindtap="onClickL2Outdata-id="{{item.id}}">

    <view>{{index+1}}_{{item.title}}view>

    <icon wx:if="out{{index+1}}type="successsize="20rpxcolor="{{iconcolor}}">icon>

  view>

view>



回答关注问题邀请回答
收藏

3 个回答

  • .
    .
    2020-08-10

    wx:if 成立的条件是 不为空 不为null 不为undefined 不为负数。但是你这样子写 他都是true。

    2020-08-10
    有用 1
    回复 10
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-10
      明白。那怎么写呢?或者使用别的思路?刚才根据别人的建议,写成"{{out[index+1]}}"也不行。
      2020-08-10
      回复
    • .
      .
      2020-08-10回复Jason_亮 🇨🇳
      你这里第三层和第二层是怎么对应的?还是说第三层就在第二层的下面?也是第二层循环里的子元素?
      2020-08-10
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-10回复.
      第二层每个大控件对应第三层一组问题,问题回答即显示其第二层对应标签右下角的小ICON标签。第三层就在第二层的下面,第三层根据第二层控件的点击出来,究竟循环出来还是罗列出来,不在当前问题范围。
      2020-08-10
      回复
    • .
      .
      2020-08-10回复Jason_亮 🇨🇳
      你把你json数据格式整理贴一下吧 完整点 我看看。
      2020-08-10
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-10回复.
      是js吧? 其实没什么好看的,我单独拿OUT1或者out2测试就通不过。  onClickL2Out(res) {
          let id = res.currentTarget.dataset.id;
          // console.log(id)
          this.setData({
            current:id,
            out1:true,
            out2:true,
          })
        },
      2020-08-10
      回复
    查看更多(5)
  • brave
    brave
    2020-08-10

    wx:if="out{{index+1}}" 因为out是字符串所以不管你index+1是什么,他都是true

    2020-08-10
    有用 1
    回复 1
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-10
      明白。那怎么写呢?或者使用别的思路?刚才根据别人的建议,写成"{{out[index+1]}}"也不行。
      2020-08-10
      回复
  • Why not?
    Why not?
    2020-08-10

    wx:if="out{{index+1}}" 不知道out是啥东西,但应该是个变量吧,你得这么写:wx:if="{{out[index+1]}}"

    2020-08-10
    有用
    回复 4
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-08-10
      这样写也不可以啊,index+1外面不论是()或[]均不可以,这样,连wxml渲染都看不到了。我这里探讨的不仅仅是这个写法的问题,估计这么写根本就写不出准确的方式,需要换个别的思路?有建议吗?
      2020-08-10
      回复
    • Why not?
      Why not?
      2020-08-10回复Jason_亮 🇨🇳
      你的变量是out1, out2呀,你那样拼变量名是不行的,又没有eval给你用。改改你的判断条件吧,多写几个wx:if
      2020-08-10
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      发表于移动端
      2020-08-10回复Why not?
      多写几个 wx:if 什么意思?还有其他方案建议?
      2020-08-10
      回复
    • Why not?
      Why not?
      2020-08-10回复Jason_亮 🇨🇳
      wx:if="{{test1 && out1}}" ... wx:if="{{test2 && out2}}",类似这样。
      如果你把out1, out2按顺序放到一个数组里,倒是可以用wx:if="{{out[index]}}"这种形式了
      2020-08-10
      回复
登录 后发表内容
问题标签