注意:javascript
代碼示例:css
Page({
/**
* 頁面的初始數據
*/
data: {
value:"初始值" //定義一個變量value,賦值爲:「初始化」
},
/**
* 生命週期函數--監聽頁面加載
*/
onLoad: function (options) {
}
})複製代碼
解決:由於這裏的wx:rewuest()是在頁面加載時調用,因此咱們能夠在onLoad()中定義一個變量that ,將this賦值給that,那麼此時的that表明相對於onLoad()的當前對象,而後在success回調函數中直接使用that.setData()便可。java
若是是獲取實例方式:緩存
var that; 全局定義that變量
var option = {
data: {}
};
var requestCallback = function (err, data) {
if (err) {
************************
} else {
that.setData({
Image: data.image
})
}//if
}; //requestCallback
option.simpleUpload = function () {
that = this; //這裏定義 this
// 選擇文件
wx.chooseImage({
count: 1, // 默認9
success: function (res) {
**********************************
}, requestCallback
});
};
//獲取應用實例
Page(option);
複製代碼
data: {
isChecked: [true, true, true, true, true, true, true, true, true, true, true]
}
複製代碼
如上,若是我想動態修改isChecked裏面指定某個下標的值怎麼辦?ruby
下面我來講怎麼動態修改一個對象的某元素的值。上面這個是索引下標,等會還有個key-value的例子。bash
代碼:函數
click: function (e) {
var id = e.target.id//根據點擊不一樣的view獲取對應的id值
var str = "isChecked[" + id + "]"//重點在這裏,組合出一個字符串
this.setData({
[str]: false//用中括號把str括起來便可
})
}
複製代碼
看註釋。點擊->觸發對應事件->來到click函數這裏,根據點擊的view獲取對應的id,修改指定下標的isChecked。this
上面這個isChecked的索引是從0到n的,便可以經過isChecked[0]、isChecked[1]來訪問。能夠在操做的過程當中打印日誌看一下數據類型。spa
哦,對了,在wxml中若是要綁定isChecked中元素的值,能夠這麼:3d
<view class="{{isChecked[2]?'main_view':'main_view_clicked'}}" bindtap='click' bindlongpress='cancelclick' id='2' bindtap='click'></view>
不要在乎那個三目運算,反正相似於js中訪問方式,也是isChecked[index]。同理,下面的key-value類型的就能夠經過isChecked[index].key來綁定數據了。
下面是key-value類型的:
data: {
isChecked: [
{
key: true
},
{
key: true
},
{
key: true
}
]
}
複製代碼
直接寫操做方式了(由於就跟上面只有一點點的區別):
var str = "isChecked[" + id + "].key"
this.setData({
[str]: false
})複製代碼
結束~