小程式自定義事件與頁面載入
阿新 • • 發佈:2019-01-05
小程式接收自定義事件結果與頁面載入是有先後順序的,接收事件結果是晚於頁面載入結果的。如何才能將接收的事件結果更新到頁面呢?看下面例子:
1.自定義事件
初始化事件名稱:contactevent
var contacts = [1,2,3]
var iscontact = (contacts.length==0?'false':'true')
var myEventDetail = { iscontact: iscontact} // detail物件,提供給事件監聽函式
this.triggerEvent("contactevent", myEventDetail);
2.接收事件
繫結事件:contactevent
data:{
iscontact:""
}
<chatlist show='{{show}}' bind:contactevent='showContact' caInnercode='{{caInnercode}}'/>
<view>{{iscontact}}</view>
獲取事件結果
showContact: function (e) {
var iscontact = e.detail.iscontact
this.setData(iscontact)
}
這時載入頁面{{iscontact}} 是空。
3.重新載入事件結果
data:{
iscontact:"",
ds:{}
}
onShow: function () {
ds.iscontact='true'
this.setData(ds)
}
showContact: function (e) {
var iscontact = e.detail.iscontact+""
var ds = this.data.ds
ds.iscontact = iscontact
this.setData(ds)
},
onShow 載入對ds賦值,獲取監聽結果重新ds賦值,導致頁面重新載入資料,這樣就可以實時獲取監聽資料了。
歡迎大家可以關注我,聯絡我進行技術討論。