zoukankan      html  css  js  c++  java
  • EXTjs4.0 的store的findRecord的BUG.

     在findRecord方法调用了 findRecord: function()这个方法
     findRecord: function() {
            var me = this,
                index = me.find.apply(me, arguments);
            return index !== -1 ? me.getAt(index) : null;
        },
    进入find方法
    find: function(property, value, start, anyMatch, caseSensitive, exactMatch) {
            var fn = this.createFilterFn(property, value, anyMatch, caseSensitive, exactMatch);
            return fn ? this.data.findIndexBy(fn, null, start) : -1;
        },
    createFilterFn方法
        createFilterFn: function(property, value, anyMatch, caseSensitive, exactMatch) {
            if (Ext.isEmpty(value)) {
                return false;
            }
            value = this.data.createValueMatcher(value, anyMatch, caseSensitive, exactMatch);
            return function(r) {
                return value.test(r.data[property]);
            };
        },
     findIndexBy : function(fn, scope, start){
            var me = this,
                keys = me.keys,
                items = me.items,
                i = start || 0,
                len = items.length;

            for (; i < len; i++) {
                if (fn.call(scope || me, items[i], keys[i])) {
                    return i;
                }
            }
            return -1;
        },
    请注意
    value.test(r.data[property]);有BUG的地方就出在这里
    我这里用property是"ID"字段.
    这里是查询ID==1的这条记录record,
    它通过这个循环来做的
      for (; i < len; i++) {
                if (fn.call(scope || me, items[i], keys[i])) {
                    return i;
                }
            },
    即每次都调用
    value.test(r.data[property])
    这个判断是通过正则表达式来做的,
    大家可以测试一下这个情况
    var  value=new RegExp('1');
    var b=value.test('15')//这个是返回成功的。
    我想大家都知道原因了,
    当判断ID=1的时候,遇到1开头的ID的时候,这个时候就判断出问题了。

  • 相关阅读:
    java小白学习练手成绩管理系统(一)
    java初级学习练手成绩管理系统(四)
    Echart可视化学习集合
    java小白学习练手成绩管理系统(六)
    java小白学习练手成绩管理系统
    网页内容加密
    Ubuntu 10.04 安装配置指南
    Linux目录解释
    完整清除XP垃圾文件系统自带的秘密武器
    人人都应该掌握的一些电脑操作技巧
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3125196.html
Copyright © 2011-2022 走看看