关于父子页面传值的问题,急!求帮助。

A页面有个按钮,点击打开B页面,B页面中有个子页面C。B和C都在A页面进行了预加载。B界面有个网络请求,现在怎么可以将请求返回的数据传给子页面C呢。我试过自定义事件好像并没有用。

这是A页面代码:

mui.init({

preloadPages:[{

url:'B.html',

id:'B.html'

},

{

url:'C.html',

id:'C.html'

}

]

});

\n

B页面代码:

mui.init({

subpages: [{

id: 'C.html',

url: 'C.html',

styles: {

top: '83px',

bottom: 0,

bounce: 'vertical'

}

}]

});

\n

C页面就是一个简单的tableview列表。B界面有个网络请求,返回的数据需要穿到子页面C并在C页面展示,现在就是值传不过去。有点炸啊!



2015-08-17 11:42 添加评论 分享
已邀请:
2

00飞00 - 全栈 安全 原生

赞同来自: Alohaaaaa DCloud_MUI_CHB

你在A页面已经预加载了C页面,B页面就没必要在用子页面了。
或者你A预加载B,B子页面C。

传值的话,用自定义事件:
在B页面,点击按钮,调用网络请求,获取数据。
接着,触发C页面的自定义事件,同时把你要传的值传过去

B页面:

function B(){
var data = 'XXXXXXX';

var webViewC = plus.webview.getWebviewById('C'); //C是预加载或是子页面时 C的id
mui.fire(webViewC ,'transData',{ //transData 是C页面自定义事件的名称
tableview:data

});

}

C页面:

mui.plusReady(function(){

// transData是自定义事件的名称,由其他页面通过 mui.fire 触发
// transDataHandler 是处理自定义事件的函数名称 ,名字自己随便写
window.addEventListener('transData',transDataHandler) ;
})

//自定义事件处理逻辑 event参数不能少
function transDataHandler(event){

//获取从B页面传过来的数据
var tableview = event.detail.tableview ;

//这里给C页面上需要赋值的 赋值

//赋值结束后,让页面显示出来
var webviewC = plus.webview.getWebviewById('C');
plus.webview.show(webviewC ,'zoom-in',300); //zoom-in 动画显示方式,可以在5+ API查到 有多个

}

如果还是不明白,可以去看下 滴石 这个APP,在案例那里有


0

五块钱的果汁 - 勤奋是一种被逼无奈 - 热爱是一种情不自禁~

赞同来自:

你的自定义事件是怎么写的


要回复问题请先登录注册