[英]Sencha Touch filter dataview store and refresh list
似乎很容易,但是在数小时的浪费时间之后,我必须问一下。
我有一个嵌套的dataview列表,其中包含从api填充的存储。 每条记录整齐且易于解析。 像这样:
title: 'some title'
starred: false // some are "starred: true" and thats what I want
state: 1
statetyped: 1
我只需要轻按一个标有“已加星标”的按钮,然后过滤列表以仅显示已加星标的项目。
我已经在阳光下尝试了一切,包括:
sto.filterBy(function(record){
var title = record.get('starred');
if(title == "true" || title == true)
return record;
});
//doesnt work
sto.filter(function (record) {
if (record.data.starred == true) {
return record;
}
});
//same, doesn't work
我什至感到绝望,并用underscore.js过滤了列表,创建了一个新商店并尝试加载该新商店,但无济于事。
控制台错误是: 未捕获的TypeError:无法调用null的方法“ detach” (Default.js?_dc = 1392147674804:140)
如果有帮助:
我的数据视图视图: http : //jsfiddle.net/8ycnR/
列表控制器: http : //jsfiddle.net/a7ZaX/
如果您在模型中将加starred
字段类型配置为bool
,则只需使用Ext.data.Store
filter()
方法即可。
作为第一个参数,您应传递属性名称,并作为第二个参数值,以下列方式过滤:
sto.filter('starred', true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.