今天在调用mui的fire()函数时,如
mui.fire(id,'refresh',{subbranch:list[i].subbranch});
发现另一个页面无法获取到subbranch值,由于时间原因,用此方法解决
plus.storage.setItem('subbranch',list[i].subbranch);
看其他帖子也有提到此问题,具体原因是页面非打开状态,获取值有延迟,可以尝试以下几个解决方法:
- 用
plus.storage.setItem
存值,这样的问题是值会一直伴随整个应用打开时间,占有空间大,好处是生命期长,除了当前用到的两个页面其他页面也能获得值 - 在传值触发监听器时设置一个延迟,使值传到另一个页面后再触发监听。
- 将值设置在当前页面,监听器从当前页面获取值。
更新:
今天发现了解决方法,监视器回调函数加参数e,e.detail.xx能得到传来的值
fire()函数依旧:
mui.fire(id,'fresh_sub',{subbranch:list[i].subbranch});
监视器:
window.addEventListener("fresh_sub",function(e){
var account_bank=document.getElementById("account-bank");
subbranch = e.detail.subbranch;
account_bank.value = subbranch;
},false);
可以直接得到subbranch的值,不需要窗口或者监视器自触发。