【发布时间】:2014-10-29 15:02:33
【问题描述】:
当我将 JSON 数据加载到 ExtJS 存储中时,每条记录的索引都会反映数组中对象的原始顺序。但是,在对存储应用排序后,索引会根据新顺序发生变化。
如何访问加载数据时的原始索引?我需要这个来对记录执行 crud 操作。
【问题讨论】:
标签: javascript extjs extjs4 extjs4.2
当我将 JSON 数据加载到 ExtJS 存储中时,每条记录的索引都会反映数组中对象的原始顺序。但是,在对存储应用排序后,索引会根据新顺序发生变化。
如何访问加载数据时的原始索引?我需要这个来对记录执行 crud 操作。
【问题讨论】:
标签: javascript extjs extjs4 extjs4.2
就像 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(双击任何记录以检查原始索引和新索引)。
【讨论】:
一旦您对商店进行了分类,这些信息可能会丢失(不完全确定)。我只是尝试在记录本身中包含一个 id。如果您可以在发送之前将其包含在 JSON 中,则初始索引应作为 id。
【讨论】: