微信小程序setData 赋值对象属性

这几天在做页面的时候,关于setData方法产生了一点疑问,现在来总结一下。

首先说一下赋值对象属性的两种方法

1.修改data下的对象

this.setData({
	'params.name':'李四'
})

2.修改data下的对象数组

this.setData({
	'example[1].text':"清零"
})

如果要给对象数组中某一个对象的某个属性赋值,可以采用以下两种方式:

var temp1 = 'example['+order+'].state'
var temp2 = `example[${order}].text`

然后通过[temp1]:'runnning'这样的方式来进行赋值

下面是代码示例

wxml


    {{params.name}}
    



    
        {{item.state}}
        
        {{item.text}}
        
        
    

js

data: {
        params: {
            name: '张三',
            age: '18',
            gender: 1
          },
          example: [{
            id: '1',
            state:"paused",
            text:"第一个"
          },
          {
            id: '2',
            state:"running",
            text:"第二个"
          }
        ]
    },

    changetext1:function(){
        console.log(1)
        this.setData({
            'params.name':'李四'
        })
    },

    changetext2:function(e){
        var order = e.target.dataset.index
        console.log(e.target.dataset.index)
        var temp1 = 'example['+order+'].state'
        var temp2 = `example[${order}].text`
        this.setData({
            [temp1]:'down',
            [temp2]:'清零'
        })
    },

 效果图

original:

微信小程序setData 赋值对象属性_第1张图片

after bindtap:

微信小程序setData 赋值对象属性_第2张图片

你可能感兴趣的:(微信小程序,微信小程序,小程序)