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

QQ登录

只需一步,快速开始

查看: 1808|回复: 9

[结贴] 页面跳转 时 modelparamreceive和baasDATA加载顺序问题?

[复制链接]

4

主题

15

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
发表于 2017-3-30 17:28:04 | 显示全部楼层 |阅读模式
仿淘宝 php从后台加载数据,从首页点击按钮跳转到 list.w 页面传参传参,接收参数        Model.prototype.modelParamsReceive = function(event) {
                /*
                 * 1、接收上页传来参数、显示在搜索框中、参数不变不刷新
                 */
                 alert("list.w  modelParamsReceive");
                if (this.params !== undefined) {
                        if (this.keyValue != this.params.keyValue) {
                                this.keyValue = this.params.keyValue;
                                this.comp("keyInput").val(this.keyValue);
                                this.loadProducts(this.params.keyValue);
                        }
                }

        };
但问题是,list.w的productsData组件总是在 modelParamsReceive  之前加载数据
        // productsData总是在modereceived前加载
        Model.prototype.productsDataBeforeRefresh = function(event){
//                alert("productsDataBeforeRefresh");
                var filter = "fTitle like  '%" + this.keyValue + "%'";
                this.comp("productsData").setFilter("proFilter", filter);
        };
如何解决这类加载顺序问题呢,请各位大侠赐教
发表于 2017-3-30 17:31:40 | 显示全部楼层
可以将 productsData 的autoLoad设置为false
然后在modelParamsReceive   接受参数设置条件后再调用data.refreshData() 刷新数据!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

15

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-3-31 08:50:25 | 显示全部楼层
liangyongfei 发表于 2017-3-30 17:31
可以将 productsData 的autoLoad设置为false
然后在modelParamsReceive   接受参数设置条件 ...

已经设置了如图
  1. <div component="$UI/system/components/justep/data/baasData" autoLoad="false" xid="productsData" queryAction="queryProducts" saveAction="saveProducts" url="/wd/products" tableName="products" idColumn="id" onBeforeRefresh="productsDataBeforeRefresh"><column label="id" name="id" type="Long" xid="default8"></column>
  2.   <column label="商家ID" name="fShopID" type="Long" xid="default9"></column>
  3.   <column label="标题" name="fTitle" type="String" xid="default10"></column>
  4.   <column label="商品类别0未分类1农业成品2服饰等等" name="fCategory" type="Integer" xid="default11"></column>
  5.   <column label="1热销2推荐3一般产品" name="fType" type="Integer" xid="default12"></column>
  6.   <column label="销售价" name="fPrice" type="Float" xid="default13"></column>
  7.   <column label="原价" name="fOldPrice" type="Float" xid="default14"></column>
  8.   <column label="销量" name="fRecord" type="Integer" xid="default15"></column>
  9.   <column label="是否免邮" name="fPostage" type="String" xid="default16"></column>
  10.   <column label="生产地址" name="fAddress" type="String" xid="default17"></column>
  11.   <column label="商品详情" name="fDetail" type="String" xid="default18"></column>
  12.   <column label="图片名称" name="fThumbImgUrl" type="String" xid="default19"></column>
  13.   <column label="fImgUrl" name="fImgUrl" type="String" xid="default20"></column>
  14.   <column label="库存" name="fStock" type="Integer" xid="default21"></column>
  15.   <column label="评论数量" name="fCommentsCount" type="Integer" xid="default22"></column></div>
复制代码




手动加载商品如下
  1. // 获取商品列表
  2.         Model.prototype.loadProducts = function(keyValue) {
  3.                 /*
  4.                  * 1、加载商品数据 2、接收传入的参数,过滤数据
  5.                  */
  6.                  if(keyValue != undefined ){
  7.                         var proData  = this.comp("productsData");
  8.                         var filter = "fTitle like  '%" + keyValue + "%'";
  9.                         proData.setFilter("proFilter", filter);

  10.                         proData.refreshData();

  11. //                        alert("loadProducts:" + proData.count());
  12.                         justep.Util.hint("products count:" + proData.count())
  13.                  }
  14.         };
复制代码
已经设置如上了,还是先加载baasData,是不是要在list.w model设置其他值?
file:///C:\Users\ct\Documents\Tencent Files\350374069\Image\C2C\@C(P)YB3D0WSK(84U]J1BP5.png

1.png
回复 支持 反对

使用道具 举报

4

主题

15

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-3-31 08:59:17 | 显示全部楼层
liangyongfei 发表于 2017-3-30 17:31
可以将 productsData 的autoLoad设置为false
然后在modelParamsReceive   接受参数设置条件 ...

或者 浏览器或者studio环境缓存的影响呢?
回复 支持 反对

使用道具 举报

发表于 2017-3-31 10:14:34 | 显示全部楼层
pansj89 发表于 2017-3-31 08:50
已经设置了如图

如果list等 组件绑定了这个data组件!
那么 需要将list组件的autoLoad属性设置为false
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

15

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-3-31 11:19:25 | 显示全部楼层
是这个原因,有list绑定这个baasdata,将其设置为 autoload = false就OK 了。
但是这个 LIST没有显示加载的数据了,
本人事个人爱好者,小白,请版主解惑,谢谢
回复 支持 反对

使用道具 举报

发表于 2017-3-31 11:22:28 | 显示全部楼层
pansj89 发表于 2017-3-31 11:19
是这个原因,有list绑定这个baasdata,将其设置为 autoload = false就OK 了。
但是这个 LIST没有显示加载的 ...

刷新的时候执行list.refresh(true) 即可!!

不用调用 data的刷新!!

参数 true 就表示刷新data数据!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

15

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-3-31 11:22:40 | 显示全部楼层
pansj89 发表于 2017-3-31 11:19
是这个原因,有list绑定这个baasdata,将其设置为 autoload = false就OK 了。
但是这个 LIST没有显示加载的 ...

解决了,在 baasdata的afterrefresh() 手动调用 list组件的 refresh就好了。
谢谢版主解惑
回复 支持 反对

使用道具 举报

发表于 2017-3-31 11:40:31 | 显示全部楼层
pansj89 发表于 2017-3-31 11:22
解决了,在 baasdata的afterrefresh() 手动调用 list组件的 refresh就好了。
谢谢版主解惑 ...

不用的!直接调用
list.refresh(true) 就行不需要写baasdata的afterrefresh
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

15

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-3-31 14:22:22 来自手机 | 显示全部楼层
好的,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 04:06 , Processed in 0.104359 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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