mui框架遇到的问题

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引用一个共用页面的时候,首先打开父页面,从父页面打开公共页面,父页面传递过来的数据可以获取到正常运行(这一条路径没有问题)

然后紧接着,从父元素跳转到了子页面,子页面也打开公共页面,此时,检测不到任何由子页面传递过来的数据,两个页面的传值方式一模一样,但是后打开的页面就监测不到数据,不知道什么情况,求解、、、、、、

猜你喜欢

转载自www.cnblogs.com/cmlblogcp/p/12023892.html