欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序如何使用setData修改data中子對象的屬性值 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

微信小程序如何使用setData修改data中子對象的屬性值

發(fā)表時間:2021-1-5

發(fā)布人:葵宇科技

瀏覽次數(shù):63

在微信小程序開發(fā)中數(shù)據(jù)與頁面的綁定是靠data對象來實現(xiàn)的。如果要修改頁面中某個變量的值,就需要使用this.setData({變量名:值})。

比如,點擊按鈕修改變量值:

change:function(e){
  this.setData({
    test:'hello world!'
  })
}

但是如果要修改data中子對象的屬性值呢?一個很自然的想法是多點幾次不就行了?比如person.name

 this.setData({
    person.name:'fxjzzyo'
  })

但是,很遺憾不能這樣做啦?。AQ,上面是錯誤示范啦!?。?
會報錯啊=_=QAQ

難道為了更改其中一個屬性,就只能把一個對象的所有屬性都setData一遍嗎?

呵呵,當然不是啦。山人自有妙計也。
只需要用一個字符串拼接處前面的屬性名就ok啦~
且看下面的栗子~


例如:

頁面代碼test.wxml:

<view class='page'>
  <view>{{test}}view>
  <button bindtap='change'>修改test為hello world!button>
    <view>{{person.name}}view>
  <button bindtap='changePerson'>修改人名為fxjzzyobutton>
view>

邏輯代碼test.js:


Page({

  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
     test:'test',
     person:{
      name:'jay',
      age:12,
      address:'china',
      like:'sing song',
      phone:'123456'
    }
  },
  change:function(e){
  this.setData({
    test:'hello world!'
  })
},
  changePerson:function(e){
    var str = 'person.name';
    this.setData({
      [str]: 'fxjzzyo'
    })
  },
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad: function (options) {

  }
})

重點在changePerson這個方法中:

 changePerson:function(e){
    var str = 'person.name';
    this.setData({
      [str]: 'fxjzzyo'
    })
  },

很easy啦,只需要把原本要寫的person.name:’fxjzzyo’前面的person.name用一個字符串變量拼接出來就ok啦~
切記:使用時要把那個變量用中括號([])括起來


雖然是小知識點,但用處肯定大大地。。假如不會這個的話,就無法修改子對象的屬性值,最笨的方法是,把這個對象重新賦值一遍。對象屬性個數(shù)少了還好說,要是碰到一個對象的屬性超級多,而你只是為了修改其中一個屬性就把所有值賦值一遍

相關案例查看更多