store相当于数据库的表,是模型实例的集合。(是不是可以看成结构体数组)

可以对模型实例进行新建、更新、读取、删除、排序和过滤等操作。

创建store

由于store是表,必须要有模型或者定义字段,定义一个store最重要的是定义它的字段或者模型。

要让store加载数据,少不了为它定义代理,定义方式和在模型中使用的方式一样。

注意api中read和destroy的地址。

为store加载数据最简单的是添加配置项autoLoad设置其值为true,这样store在创建实例的时候会自动加载数据,

但是如果store数量过多的时候,会导致加载速度很慢,因此使用load的方法来加载数据。

store加载完数据之后会触发load和refresh事件。

如果是为了刷新视图可以使用refresh事件,其他情况可以使用laod事件或refresh事件。

store返回格式与模型一样,但是必须要有total,不然就无法分页了

加载本地数据

如果store在初始化的时候就载入数据,可以使用data配置项来定义,格式与返回格式中的data属性一样。

如果想在store初始化后再加载本地数据,就需要使用add或setData方法。

方法add用于追加数据,而setData会删除原有数据然后加载新的数据。

因为采用本地加载数据的方式,因此不需要定义代理。

不需要代理,不需要代理,不需要代理

这个是吧store中的数据又读到了一个新的comments的store中

var commentsStore= Ext.StoreManager.get("Comments");
commentsStore.setData(data.getAt(0).comments().getData().items);

在store中实现增删改查

1. 新建操作

要在store中增加数据可以使用add方法,该方法可以一次添加一条或者多条数据。

单个数据的格式必须是json格式的

新建完了之后就可以用sync方法将数据提交到服务器端。

服务器端处理完数据之后就可以根据相应的格式返回数据了。

sync方法会返回一个对象,包含added,updated和removed三个属性。

调用sync方法之后,这两条新的记录会以数组的形式通过data关键字提交到服务器,

服务器端的处理过程是:将获取的字符串转换为JSON数组,然后逐个提取数组中的JSON对象,并将数据保存到数据库,这时数据库会返回实际的产品编号,

且必须使用ProductId字段返回。每新建一个记录的时候,框架都会为它分配一个id值。

2. 编辑操作

编辑操作是基于记录的,而且只能使用记录的set方法来操作,方法set有两个参数,第一个参数是要编辑的字段的名称,第二个是编辑后的字段值。

3. 删除操作

在store中,删除操作有remove,removeAll和removeAt三个方法,分别用来删除记录、删除全部记录和根据索引来删除记录。

删除记录不能使用sync方法,没有办法清空删除缓存中的记录。每次同步都会重复发送已删除的记录。

最好在store定义中,定义syncRemoveRecords为false,禁止同步删除的记录。

删除操作使用Ext.Ajax将要删除的记录id提交到服务端进行删除,返回后,再使用模型的destroy方法来删除记录。

不用erase的方法是因为,它会执行一次提交操作。

4. 自动同步

在store中可以用配置项autoSync来指示是否同步,默认是false,也就是不自动同步,如果设置为true,则store数据变化时会自动同步。

5. store排序,过滤,分组,分页,树状图形

sencha touch之store的更多相关文章

  1. sencha touch json store

    js: Ext.define('MyApp.store.MyJsonStore', { extend: 'Ext.data.Store', requires: [ 'MyApp.model.Perso ...

  2. Sencha Touch 2.2 Store Proxy 异常监控

    移动端到服务端通信往往会发生很多莫名的异常情况,如何有效的监控proxy异常,给用户友好的用户体验呢? Proxy给我提供了异常exception的监听事件,只需要监控该项目即可. Sencha To ...

  3. 跟我一起玩转Sencha Touch 移动 WebApp 开发(一)

    1.目录 移动框架简介,为什么选择Sencha Touch? 环境搭建 创建项目框架,框架文件简介 创建简单Tabpanel案例 自定义图标的方式 WebApp产品测试和发布 HTML5离线缓存 发布 ...

  4. Sencha Touch+PhoneGap打造超级奶爸之喂养记(一) 源码免费提供

    起源 非常高兴我的宝宝健康平安的出生了.对于初次做奶爸的我,喜悦过后,面临着各中担心,担心宝宝各项指标是否正常.最初几天都是在医院待着,从出生那一天开始,护士妹妹隔一段时间就会来问宝宝的喂奶,大小便, ...

  5. 再探 Ext JS 6 (sencha touch/ext升级版) 变化篇 (编译命令、滚动条、控制层、模型层、路由)

    从sencha touch 2.4.2升级到ext js 6,cmd版本升级到6.0之后发生了很多变化 首先从cmd说起,cmd 6 中sencha app build package不能使用了,se ...

  6. 初探 Ext JS 6 (sencha touch/ext升级版)

    Sencha Touch 现在已全面升级至Ext Js 6,那么我们如何使用他们呢? 首先去官网下载最新的sdk和帮助文档 sdk下载地址:https://www.sencha.com/product ...

  7. sencha touch tabsidebar 源码扩展

    先上图看效果 没错,这是一个sencha touch 项目,而这里的右边推出效果(下文叫做tabsiderbar),使用插件tabsiderbar来扩展的. 插件js下载地址:http://www.m ...

  8. sencha touch 2 tabpanel中List的不显示问题,解决方案

    笔者在做sencha项目的时候碰到一个需求,就是"好友列表"中分为"未确认好友"和"已确认好友",两个都是一个list,自然想到的就是使用t ...

  9. Sencha Touch Guide

     1.一些命令 创建APP #  Make sure the current working directory is the Sencha Touch 2 SDK 例如D:\Program File ...

随机推荐

  1. Windows 7 64位下使用ADB驱动

    早上在cmd输入adb devices想查询正在执行的虚拟器有多少个,但是执行结果出现 C:\Users\Administrator>adb deviceserror: C:\Users\Adm ...

  2. 鸟哥的linux私房菜学习记录之账号管理与权限设定

    每个登录者都会取到两个ID,一个使用者ID,一个群组ID

  3. sql基础查询

    2.1 指定使用中的资料库 一个资料库伺服器可以建立许多需要的资料库,所以在你执行任何资料库的操作前,通常要先指定使用的资料库.下列是指定资料库的指令: 如果你使用「MySQL Workbench」这 ...

  4. 使用163CentOS镜像

    CentOS镜像使用帮助 收录架构 i386 x86_64 SRPMS 收录版本 5 6 更新时间 每5小时更新一次   使用说明 首先备份/etc/yum.repos.d/CentOS-Base.r ...

  5. 关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法

    关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法 近期在评估使用NIOS II处理器进行项目的 ...

  6. ectouch第二讲之 文件结构

    相信大家在ectouch官网都注意到了,ectouch采用的MVC框架,之前一直以为它用的和ecshop一样都是smarty,本鸟默默按照smarty的文件结构研究了好几天,结果是各种文件对不上号.无 ...

  7. Python+Django+Eclipse 在Windows下快速开发自己的网站

    一.配置开发环境 我的开发环境是:Python3.3.2 + Django1.5.2 + Eclipse 1.安装Python 下载地址:http://www.python.org/getit/ 安装 ...

  8. java面试每日一题9

    题目:判断一个数是否是2的方次幂 public class Power { public static void main(String [] args) throws NumberFormatExc ...

  9. [转]iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

    转载地址:http://blog.csdn.net/totogo2010/article/details/7682433 iOS学习之UINavigationController详解与使用(一)添加U ...

  10. Unity脚本在层级面板中的执行顺序测试4-附加整理

    测试4为一些附加内容,后续的各种tips都加在此. 前几篇测试的链接: Unity脚本在层级面板中的执行顺序测试1 http://www.cnblogs.com/hont/p/4298110.html ...