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

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: kevin0753

[处理中1] fiter问题

[复制链接]

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 15:04:29 | 显示全部楼层
你好,

//点击 安阳
Model.prototype.MenuClick = function(event){
  var productData = this.comp('productData');
  productData.setFilter("filter","fOneID = '001'");
  productData.refresh();
};

运行提示:productData.refresh is not a function
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-9 15:40:58 | 显示全部楼层
出现这种报错,光一段代码,而看不出什么,在方法的开始的时候打一个断点,然后在浏览器调试一下,看一下这个 this.comp("productData"), 遇到报错,最好的方法就是放打浏览器去调试,才能知道为什么错
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 16:21:28 | 显示全部楼层
本帖最后由 kevin0753 于 2016-9-9 16:31 编辑
闰土 发表于 2016-9-9 15:40
出现这种报错,光一段代码,而看不出什么,在方法的开始的时候打一个断点,然后在浏览器调试一下,看一下这 ...

//点击 安阳
Model.prototype.MenuClick = function(event){
   var productData = this.comp('productData');
   productData.clear();
   productData.setFilter("filter","fOneID = :001");
   productData.refreshData();
};


你好,改成这样刷新是可以刷新了。可是条件过滤好像没有起作用。能帮我看下是红色的里面是有什么问题吗?

.w里面是这样。

<!-- 加载列表数据  -->   
<div component="$UI/system/components/justep/data/data" autoLoad="true"
  xid="productData" idColumn="fID">
  <column label="id" name="fID" type="String" xid="xid1"></column>
  <column label="父级ID" name="fOneID" type="Integer" xid="column3"></column>
  <column label="标题" name="fTitle" type="String" xid="xid2"></column>
  <column label="图片" name="fImg" type="String" xid="xid3"></column>
  <column label="价格" name="fPrice" type="Float" xid="xid4"></column>
  <column label="优惠" name="fSatisfaction" type="Integer" xid="xid5"></column>
  <rule xid="rule2"></rule></div>   
</div>


.json 数据是

[
{"fID":"004","fOneID":"002","fTitle":"可","fImg":"./img/a4.jpg","fPrice":"1000","fSatisfaction":"线上预约"},
{"fID":"003","fOneID":"001","fTitle":"麦","fImg":"./img/a3.jpg","fPrice":"1000","fSatisfaction":"预约有优惠"},
{"fID":"002","fOneID":"001","fTitle":"宝","fImg":"./img/a9.jpg","fPrice":"1000","fSatisfaction":""},
{"fID":"001","fOneID":"001","fTitle":"石","fImg":"./img/a1.jpg","fPrice":"1000","fSatisfaction":"下单有优惠"}
]


回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-9 16:38:52 | 显示全部楼层
现在这些 和你那个 productData.refresh is not a function 没有关系吧 ,这个错误应该是 refresh 这个错了吧 应该是refreshData()
productData.clear(); 为什么要清空数据呢? 清空数据,没有数据了  还能过滤么?
断点走到productData.setFilter("filter","fOneID = :001"); 控制台看一下 这句话 是什么东西
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 17:50:07 | 显示全部楼层
闰土 发表于 2016-9-9 16:38
现在这些 和你那个 productData.refresh is not a function 没有关系吧 ,这个错误应该是 refresh 这个错了 ...

运行到这里是这样的
QQ图片20160909174832.png
QQ图片20160909174930.png
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-9 17:55:55 | 显示全部楼层
然后看下此时 Data 数据是不是过滤后的数据
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 23:57:19 | 显示全部楼层
本帖最后由 kevin0753 于 2016-9-9 23:58 编辑
闰土 发表于 2016-9-9 17:55
然后看下此时 Data 数据是不是过滤后的数据

非常感谢一直帮我回答 看了好久论坛的思路是这样的。
var Model = function(){
  this.callParent();        
  this.Anyang= "001";               
};



//点击 安阳
Model.prototype.MenuClick = function(event){
  debugger;
  var productData = this.comp('productData');
  productData.setFilter("filter0","fOneID = '"+this.Anyang+"'");
  productData.refreshData();
};


fOneID的数值没有获取到。。。有什么办法吗?论坛有个用这个解决了。。。可是办法没有发上来分享。。

debugger调试错误数据:

Uncaught ReferenceError: fOneID is not defined(…)(anonymous function) @ VM780:1InjectedScript._evaluateOn @ VM730:145InjectedScript._evaluateAndWrap @ VM730:137InjectedScript.evaluateOnCallFrame @ VM730:151Model.MenuClick @ searchList.md5_9351bf34.js:78Object.extend._callModelFn @ core.min.md5_b05d1d79.js:71(anonymous function) @ core.min.md5_b05d1d79.js:71h.event.dispatch @ core.min.md5_b05d1d79.js:71g.handle @ core.min.md5_b05d1d79.js:71

filehelper_1473436583598_52.png
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-10 10:41:14 | 显示全部楼层
fOneID 这个是什么? 看你一直没有定义他 如果是个字段 应该写成 this.comp("data").val("fOneID") 吧 ?
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-10 22:25:18 | 显示全部楼层
本帖最后由 kevin0753 于 2016-9-10 23:49 编辑

fOneID,是json里面的字段。。

在 .w 文件里 设置的过滤条件是可以过滤数据的。
  1.     <div class="x-panel-content">
  2.       <div component="$UI/system/components/justep/list/list" class="x-list"
  3.         xid="list1" data="productData" filter=' $row.val("fOneID") ==001'>  
复制代码

把 .w 里的过滤条件删掉了,想换成用 按钮的 bind-click 事件。在js里写代码。。就一直不能点击过滤。。。我数据加载的是json文件。仿途牛那个模板的。是不能用setFilter过滤吗?

  1.         Model.prototype.MenuClick = function(event){
  2.             debugger;
  3.             var productData = this.comp("productData")
  4.             productData.setFilter("filter1","fOneID='001'");
  5.         productData.refreshData();
  6.         };
复制代码


this.comp("productData").setFilter("filter1","this.comp("productData").val("fOneID") = '001'");   提示语法不对。。。
QQ图片20160910234841.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 20:36 , Processed in 0.061483 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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