ExtJs : Ext.data.store 中each的使用技巧
时间: 2024-03-09 09:51:26 浏览: 21
在 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 store
在 ExtJS 中,`store` 是一个非常重要的概念,它是用于存储数据的容器,通常用于存储从后台获取的数据或者本地静态数据。`store` 有以下几个特点:
1. `store` 可以通过 `proxy` 对象从后台获取数据,也可以通过 `data` 对象存储本地静态数据。
2. `store` 可以通过 `reader` 对象解析后台返回的数据,以便填充到 `model` 中。
3. `store` 可以通过 `writer` 对象将 `model` 中的数据保存到后台。
4. `store` 可以触发各种事件,比如 `load`、`add`、`remove`、`update` 等,方便处理数据变化时的业务逻辑。
5. `store` 可以通过 `filter`、`sorter`、`group` 等功能对数据进行过滤、排序和分组,方便数据展示和处理。
在使用 `store` 时,通常需要配置以下几个属性:
1. `model`:指定存储在 `store` 中的数据模型。
2. `proxy`:指定从后台获取数据的方式,可以是 `ajax`、`jsonp`、`rest` 等方式。
3. `reader`:指定解析后台返回数据的方式,通常与 `model` 配合使用。
4. `writer`:指定将 `model` 中的数据保存到后台的方式。
5. `fields`:指定存储在 `store` 中的数据模型的字段。
6. `listeners`:指定 `store` 的事件监听器。
7. `autoLoad`:指定是否在创建 `store` 时自动加载数据。
8. `pageSize`:指定 `store` 分页时每页显示的记录数。
当你需要在 ExtJS 中存储数据时,`store` 就是一个非常好的选择。它提供了众多功能,方便你处理数据的各种需求。
ext.data.store 属性
在 ExtJS 中,`store` 是一个非常重要的概念,它是用于存储数据的容器,通常用于存储从后台获取的数据或者本地静态数据。`store` 有以下几个常用属性:
1. `model`:指定存储在 `store` 中的数据模型。
2. `proxy`:指定从后台获取数据的方式,可以是 `ajax`、`jsonp`、`rest` 等方式。
3. `reader`:指定解析后台返回数据的方式,通常与 `model` 配合使用。
4. `writer`:指定将 `model` 中的数据保存到后台的方式。
5. `fields`:指定存储在 `store` 中的数据模型的字段。
6. `listeners`:指定 `store` 的事件监听器。
7. `autoLoad`:指定是否在创建 `store` 时自动加载数据。
8. `pageSize`:指定 `store` 分页时每页显示的记录数。
9. `sorters`:指定对 `store` 中的数据进行排序的方式。
10. `filters`:指定对 `store` 中的数据进行过滤的方式。
11. `groupField`:指定对 `store` 中的数据进行分组的字段。
12. `groupDir`:指定对 `store` 中的数据进行分组的顺序。
13. `groupers`:指定对 `store` 中的数据进行多级分组的方式。
14. `remoteFilter`:指定是否在后台进行数据过滤。
15. `remoteSort`:指定是否在后台进行数据排序。
16. `remoteGroup`:指定是否在后台进行数据分组。
17. `storeId`:指定 `store` 的唯一标识符。
使用这些属性可以方便地配置 `store`,实现对数据的存储、获取、排序、过滤和分组等各种需求。例如,以下代码演示了如何使用 `store` 存储本地静态数据,并对数据进行排序和分组:
```
Ext.create('Ext.data.Store', {
fields: ['name', 'age', 'gender'],
data: [
{ name: 'Tom', age: 18, gender: 'male' },
{ name: 'Mary', age: 20, gender: 'female' },
{ name: 'John', age: 22, gender: 'male' },
{ name: 'Lucy', age: 19, gender: 'female' }
],
sorters: [
{ property: 'age', direction: 'DESC' }
],
groupField: 'gender',
autoLoad: true
});
```
上面的代码中,`fields` 属性指定了存储在 `store` 中的数据模型的字段,`data` 属性指定了存储在 `store` 中的本地静态数据,`sorters` 属性指定了对数据进行排序的方式,`groupField` 属性指定了对数据进行分组的字段。当 `store` 加载数据时,数据会根据 `sorters` 和 `groupField` 属性进行排序和分组,方便数据展示和处理。