原因:在shell跳转的页面中,想在一个页面中调用其他页面中的js方法,比如添加到购物车的操作,这个时候,可以使用派发事件的方式解决!实质上就是在当前页面中调用其他页面的js代码!

解决方法:

参考外卖案例的写法!在/UI2/demo/taobao/main.js 中,onload事件中进行添加事件

// 添加事件
	Model.prototype.modelLoad = function(event) {
		justep.Shell.on("onRestoreContent", this.onRestoreContent, this);
		justep.Shell.on("onShoppingContent", this.onShoppingContent, this);
		justep.Shell.on("onHomeContent", this.onHomeContent, this);
	};

onUnLoad事件中 卸载事件

// 卸载事件
 Model.prototype.modelUnLoad = function(event) {
 justep.Shell.off("onRestoreContent", this.onRestoreContent);
 justep.Shell.off("onShoppingContent", this.onShoppingContent);
 justep.Shell.off("onHomeContent", this.onHomeContent);
 };</pre>
<pre>

以及js中定义这个方法,如:
Model.prototype.onRestoreContent=。。。
Model.prototype.onShoppingContent=。。。
Model.prototype.onHomeContent =。。。

在其他shell打开的页面中通过如下调用,就可以实现另一个页面相应方法的触发执行!

justep.Shell.fireEvent("onRestoreContent", {id:'id的值'});</pre>
<pre>

在onRestoreContent 的方法中通过event.id 就可以获得这个值了!

注意。另一个页面必须是打开过的!因为必须要执行onload事件才能注册上这个方法!而且不能执行到onUnLoad,否则事件卸载掉后,就无法执行到了!
这就是事件的派发基本实现原理!