我有一个Web服务,此服务返回json数据 示例:
{
"id": -65000,
"name": "SIK KULLANILANLAR",
"stockCode": null,
"groupId": 200000,
"price": 0.0,
"color": null,
"type": 1,
"mustModGrpCount": 0,
"mustModGroups": "0",
"order": 0,
"campCount": 0,
"populer": false
}, {
"id": 3882,
"name": "MILLER",
"stockCode": "ALK001",
"groupId": 200042,
"price": 8.9,
"color": "aliceblue",
"type": 3,
"mustModGrpCount": 0,
"mustModGroups": "",
"order": 0,
"campCount": 0,
"populer": false
}, {
"id": 3883,
"name": "EFES PILSEN 33 CL",
"stockCode": "ALK002",
"groupId": 200042,
"price": 7.9,
"color": "aliceblue",
"type": 3,
"mustModGrpCount": 0,
"mustModGroups": "",
"order": 0,
"campCount": 0,
"populer": false
}
我正在为groupId
过滤此数据并且它有效。但我尝试了populer
字段的过滤器,但它无效。我猜因为变量类型:populer
返回布尔值。
这是有效的:
NewMobile.globals.products.filter('groupId',200000);
但这不起作用
NewMobile.globals.products.filter("populer",true);
有人可以帮我吗?
答案 0 :(得分:0)
如果 NewMobile.globals.products 是标准数组,则附加到Array对象的过滤器方法应如下所示:
NewMobile.globals.products.filter(function(el) { return el.populer === true; })
因为过滤函数将函数而不是字段作为参数。
您可以在此处阅读MDN文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
答案 1 :(得分:0)
@Akori
NewMobile.globals = {
mesaj: 'selam',
action: '',
server: '192.168.50.70',
branchCode: '0',
activeTable: '',
activeFolio: '0',
activeTableGroup: '',
activeMustGroup: -1,
activePid: 0,
activeMustGroupString: 0,
activeMustDesc: '',
activeMustArray: [],
activeCampProduct: '',
products: undefined,
rePrint: '',
activePax: 1,
uuid: 'tanimsiz',
activeSkin: 'Krem'
};
这是启动功能变量。
这是我的要求
NewMobile.globals.products = Ext.create('NewMobile.store.PorductStore');
NewMobile.globals.products.setProxy({url: "http://" + NewMobile.globals.server + ':1002/zulu/newmobile/data.aspx?act=getAllProducts'});
NewMobile.globals.products.getProxy();
NewMobile.globals.products.load(function(a, records, c, d, e){
if (c !== true) {
Ext.Viewport.setMasked(false);
Ext.Msg.alert('uyarı', NewMobile.message.connectionError, Ext.emptyFn);
return;
}
});
答案 2 :(得分:0)
每当我运行项目时,这个旧代码都会添加一个新的过滤器。
NewMobile.globals.products.clearFilter();我用这个,问题解决了。 clearFilter正在清除旧过滤器。 感谢您的所有建议,对不起我的英语:)