知識
不管是網(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ù)少了還好說,要是碰到一個對象的屬性超級多,而你只是為了修改其中一個屬性就把所有值賦值一遍
相關案例查看更多
相關閱讀
- 汽車報廢軟件
- 汽車報廢回收管理軟件
- 百度小程序開發(fā)
- 定制小程序開發(fā)
- 昆明小程序哪家好
- Web開發(fā)框架
- 云南軟件定制公司
- 報廢車拆解管理系統(tǒng)
- 網(wǎng)站搭建
- 云南網(wǎng)站建設外包
- 云南手機網(wǎng)站建設
- 云南網(wǎng)站建設公司地址
- 小程序表單
- 國內(nèi)知名網(wǎng)站建設公司排名
- 云南省建設廳網(wǎng)站官網(wǎng)
- 網(wǎng)站優(yōu)化
- 云南小程序被騙蔣軍
- 支付寶小程序被騙
- 小程序
- 云南網(wǎng)絡推廣
- 云南網(wǎng)站制作哪家好
- 搜索排名
- 云南etc小程序
- 貴州小程序開發(fā)
- 二叉樹
- 保山小程序開發(fā)
- 云南做百度小程序的公司
- 網(wǎng)絡公司電話
- 云南網(wǎng)站建設專業(yè)品牌
- 云南小程序開發(fā)課程