起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 970|回复: 3

[结贴] 跨页面调用方法如何传递event?

[复制链接]

23

主题

89

帖子

303

积分

中级会员

Rank: 3Rank: 3

积分
303
QQ
发表于 2016-5-18 08:46:29 | 显示全部楼层 |阅读模式
本帖最后由 dew3083412 于 2016-5-18 11:08 编辑

仿淘宝案例,用户在detail添加商品后,跳转到cart页面,在触发cart页面数据重载事件时,event对象不知道如何传过去(因为呼叫baas要event一些参数)

因为cart页面是放在windowcontainer中,进入main就会加载,所以不能用modelParamsReceive传递

目前我是这样做
1.在main页面增加一个跨页面调用方法    shoppingModel.refreshCartData(event);


  1.         Model.prototype.onShoppingContent = function(event) {
  2.                 this.lastContentXid = this.comp("contents2").getActiveXid();
  3.                 this.comp("contents2").to("shoppingContent");
  4.                 var shoppingModel = this.comp("shoppingContainer").getInnerModel();
  5.                 if (shoppingModel) {
  6.                         shoppingModel.showBackBtn(true);
  7.                         shoppingModel.refreshCartData(event);
  8.                 }
  9.         };
复制代码


2.在cart 页面
  1. <p><p>        Model.prototype.refreshCartData = function(event){
  2.                 /*
  3.                 1、刷新购物车数据
  4.                  */               
  5.                         var dataGoods =this.comp("goodsData");
  6.                         dataGoods.clear();
  7.                         Baas.sendRequest({
  8.                                 "url" : "/kkkk/SYS_Cart",
  9.                                 "action" : "getCartList",
  10.                                 "async" : false,
  11.                                 "params" : {
  12.                                         "limit" : event.source.limit,
  13.                                         "columns" :Baas.getDataColumns(dataGoods),
  14.                                         "offset" : event.source.offset,
  15.                                         "shop_id" : this.shopID,
  16.                                         "user_id" : this.userID
  17.                                 },
  18.                                 "success" : function(resultData) {
  19.                                         var append = event.options && event.options.append;
  20.                                         dataGoods.loadData(resultData, append);
  21.                                         dataGoods.refreshData(true);
  22.                                 },
  23.                                 "error":function(data){
  24.                                         justep.Util.hint(data);
  25.                                 }
  26.                         });
  27.         };</p><p> </p><p> </p><p>执行会报错,说不能识别limit属性,看起来是event的传参有问题</p>
复制代码
发表于 2016-5-18 13:16:45 | 显示全部楼层
refreshCartData 是 customRefresh事件吗??
如果是,你直接调用shoppingModel.refreshData();
就可以了,会自动触发这个事件的!而不是主动调用!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

23

主题

89

帖子

303

积分

中级会员

Rank: 3Rank: 3

积分
303
QQ
 楼主| 发表于 2016-5-18 15:02:02 | 显示全部楼层
本帖最后由 dew3083412 于 2016-5-18 15:03 编辑

是自定义刷新事件,我按你的做法不行,提示说refreshData不是一个function
回复 支持 反对

使用道具 举报

23

主题

89

帖子

303

积分

中级会员

Rank: 3Rank: 3

积分
303
QQ
 楼主| 发表于 2016-5-18 15:07:47 | 显示全部楼层
我找到 方法了,应该要这样写
        shoppingModel.comp('goodsData').refreshData();

要定位到data组件,再刷新data
,结贴吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-22 19:45 , Processed in 0.055799 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表