使用JsonQuery

时间:2015-07-02 07:42:00

标签: jquery json jquery-filter

我正在使用https://github.com/jiren/filter.js中的filter.js - 很棒的脚本。

var FJS = FilterJS(products, '#products', {
    template: '#productfinder-template',
    search: {ele: '#searchbox'},
    callbacks: {
        beforeAddRecords: function(records){
            var jq = JsonQuery(records); 
            console.log(jq.order({'artnr': 'asc'}).exec());
        },
        afterFilter: function(result){
            $('#total_products').text(result.length+' records found');
        }
    }
});

在回调“beforeAddRecord”中,我调用了JsonQuery“order”函数,结果是一个有序的Json列表,就像我想要的那样。问题是在屏幕上显示此结果。

有没有人有这个脚本的经验?

2 个答案:

答案 0 :(得分:1)

做了一些测试,发现以下工作。我将代码点击按钮进行测试。

jQuery("#xselected").on('click', function(){ 
    var jq = JsonQuery(products); 
    products = jq.order({'artnr': 'asc','category':'asc'}).exec();
    FJS.removeRecords({});
    FJS.addRecords(products);
    FJS.filter;
});

从过滤器中删除所有记录,并在使用JsonQuery的订单功能后将其添加回来。

答案 1 :(得分:1)

我还不能发表评论,所以我会将其作为第二个答案发布。我在recoder发布的代码中遇到了一些奇怪的行为,当我在过滤器之间切换时,来自“产品”的数据加倍。这对于少量商品来说并不是什么大问题,但是当我添加更多商品并进行多次分类时,它开始减慢一切。

问题不在于FJS,而在于“点击”功能。它显然会保存会话的每个更改事件的所有数据。要解决此问题,只需在.unbind()之前添加.on()

jQuery("#xselected").unbind().on('click', function(){ 
    var jq = JsonQuery(products); 
    products = jq.order({'artnr': 'asc','category':'asc'}).exec();
    FJS.removeRecords({});
    FJS.addRecords(products);
    FJS.filter;
});