NO.1 页面之间的数据的传递
1、通过extras的方式
首先,在父页面通过mui.openWindow下面的extras传递到子页面的值,子页面在mui.plusReady
通过
var self = plus.webview.currentWebview(); bandID = self.id
这种传值的方式,只有第一次加载的时候才能获取到,如果频繁接受参数的时候,监测不到数据的变化。
2、 通过自定义的方式
在父页面首先预加载所需要的子页面,例如:
mui.init({ swipeBack: true, //启用右滑关闭功能 preloadPages: [{ id: 'children.html', url: 'children.html'//子页面的路径 }] });
再在父页面通过下面这种方式:
//在最外层先定义一个detailpage,首先判断着各自页面有没有打开过 if(!detailPage) { detailPage = plus.webview.getWebviewById('dbcklist_detail.html'); } //然后通过mui.fire来传递所需要的值,这个值我给的是一个对象 //触发详情页面的cgdd_goodsid事件 mui.fire(detailPage, 'cgdd_goodsid', { cgdd_goodsid: goodsid, }); //最后到开子页面 mui.openWindow({ id: 'dbcklist_detail.html' });
然后在子页面通过监听,获取到父页面传递过来的数据,如下所示:
//监听父页面的mui.fire传递过来的数据 cgdd_goodsid window.addEventListener('cgdd_goodsid', function(e) { var goodsid = e.detail.cgdd_goodsid;//这个就是从父页面传递过来的数据 })
这种数据传递方式,可以监测到,就算是页面跳转频繁,也可以。
当然,如果有更加合适的方式,大家可以一起讨论哟、、、、、、
NO.2 子页面被父页面引用,同时被父父页面引用,数据接受问题
我个人在父子页面同时通过preloadPages引用一个共用页面的时候,首先打开父页面,从父页面打开公共页面,父页面传递过来的数据可以获取到正常运行(这一条路径没有问题)
然后紧接着,从父元素跳转到了子页面,子页面也打开公共页面,此时,检测不到任何由子页面传递过来的数据,两个页面的传值方式一模一样,但是后打开的页面就监测不到数据,不知道什么情况,求解、、、、、、