爱慕啼
爱慕啼
  • 发布:2015-08-27 21:08
  • 更新:2015-08-28 09:40
  • 阅读:8723

在mui.init()中预加载页面和通过mui.preload预加载页面有什么区别?

分类:MUI

在官方文档中看到这两种预加载页面的方式不知有什么不同?

官网的文档介绍mui.fire时,有一点没有看懂,这句 var id = event.detail.id;,
取id为什么用event.detail.id。设置newid事件时不是 id:id,取值时为什么event不等于id?
那么event.detail是什么意思?
mui.fire(detailPage,'newsId',{
id:id
});

//初始化预加载详情页面  
mui.init({  
  preloadPages:[{  
    id:'detail.html',  
    url:'detail.html'             
  }  
  ]  
});  

var detailPage = null;  
//添加列表项的点击事件  
mui('.mui-content').on('tap', 'a', function(e) {  
  var id = this.getAttribute('id');  
  //获得详情页面  
  if(!detailPage){  
    detailPage = plus.webview.getWebviewById('detail.html');  
  }  
  //触发详情页面的newsId事件  
  mui.fire(detailPage,'newsId',{  
    id:id  
  });  
//打开详情页面            
  mui.openWindow({  
    id:'detail.html'  
  });  
});  

详情页面代码如下:  

//添加newId自定义事件监听  
window.addEventListener('newsId',function(event){  
  //获得事件参数  
  var id = event.detail.id;  
  //根据id向服务器请求新闻详情  
  .....  
});  
2015-08-27 21:08 负责人:无 分享
已邀请:
chender

chender - 与人为善

mui.init中预加载界面是告诉mui,在plusready后,把对应的页面都加载好,隐藏在那里;
mui.preload是打开一个指定id的返回时不关闭而是因擦的界面,如果这个界面已经存在,就直接显示,如果不存在就创建并显示;
另外关于 event.detail,你可以理解成你设置的那个param就是event.detail,所以param.id就是event.detail.id

爱慕啼

爱慕啼 (作者) - 长得帅有内涵

那我以后取参数都要加一个event.detail的前缀,比如说event.detail.XX吗?

  • chender

    如果是事件机制传参的话就是这样的

    2015-08-28 09:55

该问题目前已经被锁定, 无法添加新回复