再谈Ext Store.each
时间: 2024-02-01 07:03:19 浏览: 14
Ext Store.each 方法是用来遍历 Store 中的每一个记录并执行指定的函数。它的语法如下:
```
store.each(
function( record, index, totalCount ) {
// your code here
}
);
```
其中的三个参数含义如下:
- record:Store 中的当前记录。
- index:当前记录在 Store 中的索引。
- totalCount:Store 中记录的总数。
你可以在函数中对每一个记录进行处理,例如更新记录的字段值、删除记录、或者执行其他相关操作。需要注意的是,Store.each 方法是同步执行的,因此需要谨慎处理,避免在遍历过程中对 Store 进行修改操作,否则可能会导致不可预期的结果。
相关问题
ExtJs : Ext.data.store 中each的使用技巧
在 Ext.data.Store 中,each 方法用于对 Store 中的每个记录进行迭代并执行指定的函数。以下是使用技巧:
1. 语法:store.each(fn, [scope]);
其中,fn 是处理每个记录的函数,可以是一个函数引用或匿名函数;scope 是 fn 函数中 this 的作用域,如果不指定则默认为 this,即 Store。
2. 使用 each 方法可以避免使用 for 循环对 Store 中的记录进行迭代,从而提高代码的可读性和效率。
3. 在 fn 函数中,可以通过传入的参数 record、index、length 访问每个记录的值和索引位置,以及 Store 的总长度。
4. 在 fn 函数中,可以使用 break 和 return 语句来中断循环和函数执行。
5. 例子:
```
store.each(function(record, index, length) {
console.log(record.get('name'));
});
```
上面的代码会对 Store 中的每个记录进行迭代,并输出每个记录的 name 字段值。
Ext.data.Store 样例
以下是一个简单的 Ext.data.Store 样例:
```javascript
Ext.create('Ext.data.Store', {
fields: ['name', 'age', 'gender'],
data: [
{ name: 'John', age: 30, gender: 'Male' },
{ name: 'Jane', age: 25, gender: 'Female' },
{ name: 'Bob', age: 40, gender: 'Male' }
]
});
```
这个样例创建了一个 store,该 store 包含三个字段:name、age 和 gender,以及三行数据。可以通过 `fields` 属性设置字段,通过 `data` 属性设置数据。此外,还可以通过 `proxy` 属性指定 store 的数据源,例如:
```javascript
Ext.create('Ext.data.Store', {
fields: ['name', 'age', 'gender'],
proxy: {
type: 'ajax',
url: 'data.json',
reader: {
type: 'json',
rootProperty: 'data'
}
},
autoLoad: true
});
```
这个样例从一个 JSON 文件中加载数据,其中 `url` 属性指定数据源的 URL,`reader` 属性指定数据的解析方式。通过 `autoLoad` 属性设置 store 在创建后自动加载数据。