【问题标题】:How can I get the pre-sort index of a record in an ExtJS store?如何获取 ExtJS 存储中记录的预排序索引?
【发布时间】:2014-10-29 15:02:33
【问题描述】:

当我将 JSON 数据加载到 ExtJS 存储中时,每条记录的索引都会反映数组中对象的原始顺序。但是,在对存储应用排序后,索引会根据新顺序发生变化。

如何访问加载数据时的原始索引?我需要这个来对记录执行 crud 操作。

【问题讨论】:

    标签: javascript extjs extjs4 extjs4.2


    【解决方案1】:

    就像 FoxMulder900 说的,你可以给记录本身添加一个 id 以获得原始索引位置,但是如果你不想或者不能改变你的源,你可以像这样在你的模型中添加一个 idGenerator:

    Ext.define('MyModel', {
        extend: 'Ext.data.Model',
        fields: [
            // your fields here
        ],
        idgen: {
            type: 'sequential',
            id: 'myIdField',
            seed: 0
        }
    
    });
    

    因此,当您致电 record.get('myIdField') 时,您将始终获得原始索引。

    我已经设置了一个小提琴来证明这一点:https://fiddle.sencha.com/#fiddle/cgd(双击任何记录以检查原始索引和新索引)。

    【讨论】:

    【解决方案2】:

    一旦您对商店进行了分类,这些信息可能会丢失(不完全确定)。我只是尝试在记录本身中包含一个 id。如果您可以在发送之前将其包含在 JSON 中,则初始索引应作为 id。

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 2011-05-02
      • 2017-06-18
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多