美文网首页
微信小程序:如何用setData修改data中的数组?

微信小程序:如何用setData修改data中的数组?

作者: 崔钥钥 | 来源:发表于2019-02-17 21:45 被阅读0次

    如何用setData修改data中的数组?

    下面是正确的方式,我已经解决。

    wxml:

    <view wx:for="{{reward}}" wx:for-item="i" catchtap="getReward">

        <view wx:if="{{i.status==2}}">

            <image src="{{i.img}}"></image>

            <text>{{i.name}}</text>

        </view>

    </view>

    js:

    1、初始的data数据

    Page({

        data:{

            reward:[{

                name:"hi",

                img:"../../img/success.png",

                status:1

            },

            {

                name:"hello",

                img:"../../img/success.png",

                status:2

            }]

        }

    })

    2、修改data中reward的status

    ①. 用[]表示的变量改变数组里的值

    for (let i = 0; i < num; i++) {

        var index = "reward[" + i + "].status";   //注意:这里不用写this.data.

        this.setData({

            [index]: 2            //用[]表示的变量

        });

        console.log(this.data.reward[i], "reward[" + i + "]");

    }


    我仍然存在没有解决的问题,希望哪个大神指点一下迷津。。

    list: [{

            listone: {

              imgsrc: "../../assets/images/轮播.jpg",

              name: '小A的长长服务名称',

              introduce: "服务描述服务描述服务描述服务描述",

              price: "0.00"

            }

          },

          {

            listone: {

              imgsrc: "../../assets/images/轮播.jpg",

              name: '小B的长长服务名称',

              introduce: "BBB服务描述服务描述服务描述服务描述",

              price: "2.00"

            }

          }

        ],  

    //我想在for循环中遍历一下name.length>8以外的用“...”代替,setData中为什么不可以这样写?如下。

    this.setData({

    "list[${index}].listone.name" : s + '...';  //index是我在上面声明的下角标变量,s是substring(0,8)字符串

    })

    相关文章

      网友评论

          本文标题:微信小程序:如何用setData修改data中的数组?

          本文链接:https://www.haomeiwen.com/subject/uzpneqtx.html