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的时候,这个时候就判断出问题了。

  • 相关阅读:
    0-1性能测试需求分析
    1-10jmeter关联,正则表达式(待巩固)
    1-9jmeter集合点,并发操作
    1-8.jmeter设置断言(检查点)
    1-6jmeter性能测试基础
    泛型中的协变和逆变
    jsPlumb
    jQuery UI vs Kendo UI & jQuery Mobile vs Kendo UI Mobile
    31天重构
    Visual Studio 小工具
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3125196.html
Copyright © 2011-2022 走看看