Sencha触摸存储过滤器号码

sencha touch store filter number

本文关键字:号码 过滤器 存储 触摸 Sencha      更新时间:2023-09-26

我在商店中使用过滤器查找具有特定数字的条目,但是当我只过滤单个数字时,如果特定数字出现在该数字中,过滤器也会查找其他数字。

store.filter('shiftNum', 1);

在这种情况下,过滤器也可以找到像10、11、12这样的条目,等等。

由于我的商店中只有21个可能的数字,所以只有在过滤数字1或2时才会出现问题。一个快速的解决办法可能是只输入两位数,例如。01,02。但从理论上讲,过滤器应该只搜索数字而不搜索其他内容。我试着改变模型中的字段来指定一个数字字段,而不是"自动"或"字符串",但它没有帮助。

Ext.define('Sidur.model.Opt', {
        extend: 'Ext.data.Model',
        config: {
            fields: [
                {name: 'shiftNum', type: 'number'},
                {name: 'name', type: 'string'}
            ],
            proxy: {
                type: 'sqlitestorage',
                dbConfig: {
                    tablename: 'sidur'
                }
            }
        }
    }
);

(顺便说一下,数据存储在本地的WebSQL)

使用过滤器混合集合甚至自定义函数

store.filter({
  property: fieldName,
  value: fieldValue,
  exactMatch: true,
  caseSensitive: true
});
var longNameFilter = new Ext.util.Filter({
    filterFn: function(item) {
        return item.name.length > 4;
    }
});

http://docs.sencha.com/extjs/5.0.1/# !/api/Ext.util.Filter

使用filterBy

store.filterBy(function(record, id) {
    return record.get('shiftNum') === 1;
});