收藏
回答

wx:if中能否绑定js方法判断

问题模块
API和组件

shoppingId: ["45CD4EBA20CC426598D29F10D3E70992"],

shoppingId是个数组


<icon type='success' size='20' style='margin-right:10px;' wx:if='{{shoppingId.indexOf(item.id)==-1}}' bindtap='rightitemclick' data-position='{{index}}'></icon>

这样出来的结果一直是false,求大神指导

最后一次编辑于  2017-12-01  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

9 个回答

  • You can you up
    You can you up
    2017-12-01


    标签里不支持indexOf方法你怎么写都没用

    js里判断不如拿去服务器判断  传给你的数据就是处理好的带标识位的 控制icon显示隐藏这样最合理


    2017-12-01
    赞同
    回复
  • Mr.Zhong
    Mr.Zhong
    2017-12-01

    <wxs module="util">

        var inOf = function(list, val) {

            return list.split().indexOf(val)

        }

        module.exports.inOf = inOf;

    </wxs>

    wx:if='{{util.inOf(shoppingId,item.id)==-1}}'


    2017-12-01
    赞同
    回复
  • 胡萝萝萝萝萝卜
    胡萝萝萝萝萝卜
    2017-12-01

    刚刚测试的结果,wx:if='{{shoppingId.indexOf(item.id)==undefined}}'是true,shoppingId.split().indexOf(item.id)==undefined也一样都是true

    确实没有必要在页面里面判断,应该加个falg在js中去判断,谢谢

    2017-12-01
    赞同
    回复
  • Mr.Zhong
    Mr.Zhong
    2017-12-01

    如果shoppingId是数组的话要转成字符串

    shoppingId.split().indexOf(item.id)==-1

    2017-12-01
    赞同
    回复
  • You can you up
    You can you up
    2017-12-01

    把icon循环出来只有item == itemName.id的显示  其余的不显示 都不等于都不显示    有错?(这个性能不咋滴)


    orders把这个数据在js里循环一遍  加个flag专门判断icon显示隐藏 没必要非在页面判断

    2017-12-01
    赞同
    回复
  • 胡萝萝萝萝萝卜
    胡萝萝萝萝萝卜
    2017-12-01

    里面的这个icon部分不是用来循环的,因为shoppingId这个数组的值是不动态变化的,我现在是需要通过判断当前循环中的id是否在数组中,来控制icon的显示隐藏。。

    2017-12-01
    赞同
    回复
  • You can you up
    You can you up
    2017-12-01

    <view  wx:for="{{orders}}"  class='order-item-right'  wx:for-item="itemName">

    外层wx:for


    <icon type='success' size='20' style='margin-right:10px;' wx:for="{{shoppingId}}"

    wx:if='{{item == itemName.id}}' 

    bindtap='rightitemclick' data-position='{{index}}'></icon>

    试试这个

    2017-12-01
    赞同
    回复
  • 胡萝萝萝萝萝卜
    胡萝萝萝萝萝卜
    2017-12-01

    <scroll-view  scroll-y class="orders-list-order" style='height:{{right_scrollheight}}px' >

       <view  wx:for="{{orders}}"  class='order-item-right'>

         <image src='{{item.P_ICON}}' class='order-item-imag'></image>

         <view class='order-item-text-right' >

           <view class='order-item-right-name'>{{item.P_NAME}}</view>

           <view style='display:flex;margin-top: 30px;width:100%;justify-content:space-between'>

             <view class='order-item-right-price'>¥{{item.P_PRICE}}</view>

             <icon type='success' size='20' style='margin-right:10px;' wx:if='{{shoppingId.indexOf(item.id)==-1}}' bindtap='rightitemclick' data-position='{{index}}'></icon>

             <view style='margin-right:10px;display:flex' wx:else>

               <icon type='success' size='20' data-position='{{index}}'></icon>

               <view style='padding-left:5px;padding-right:5px;font-size:small'>1</view>

               <icon type='success' size='20' bindtap='rightitemclick' data-position='{{index}}'></icon>

             </view>

           </view>

         </view>

       </view>

     </scroll-view>


    2017-12-01
    赞同
    回复
  • You can you up
    You can you up
    2017-12-01

    循环的标签写全了看看你这个上面是不是还有个wx:for

    2017-12-01
    赞同
    回复