在其余驱动的商店访存方法中实现queryLog的正确方法是什么

时间:2019-01-24 13:29:27

标签: javascript dgrid dstore

您好,我从dstore框架创建了restStore的实现。我在理解reststore中的queryLog和查询器方法的使用方面很费劲。

在内存中直接存储它。通过queryLog数组进行迭代,并对数据集应用过滤器和排序。我的情况是过滤和排序是在服务器端。我需要的是通过查询以进行过滤并排序以提供服务。

我已经根据dstore教程实现了fetch和fetchRange方法。在这些方法中,我解析queryLog数组以进行过滤和排序,然后将其传递给服务器。应该与queryLog数组做什么?从数组中删除已解析的查询?

fetchRange: function(kwArgs) {
        var self = this;
        var sortOpt = array.map(
                array.filter(this.queryLog || [], function(item) {
                    return item.type === "sort"
                }) || [], function(item) {
            self.destroyUsedQueryLog(item);
            return {
                attribute: item.arguments[0][0].property || item.arguments[0][0].attribute,
                property: item.arguments[0][0].property || item.arguments[0][0].attribute,
                order: item.arguments[0][0].descending ? "DESC" : "ASC"
            }
        });
        var queryOpt = array.map(
                array.filter(this.queryLog || [], function(item) {
                    return item.type === "filter"
                }) || [], function(item) {
            self.destroyUsedQueryLog(item);
            return item.arguments[0]
        });

        var options = {
            sort: sortOpt,
            start: kwArgs.start,
            count: kwArgs.end - kwArgs.start
        }
        return this.query(queryOpt[queryOpt.length - 1] || {}, options);
    },

destroyUsedQueryLog()函数从queryLog数组中删除已解析的查询。
query()函数接受过滤器查询,排序查询和调用休息服务,返回QueryResults

0 个答案:

没有答案