从零开始学习Sencha Touch MVC应用之十六

来源:互联网 发布:前程无忧有限公司 java 编辑:程序博客网 时间:2024/06/03 07:02
创建存储器Store


“存储类包含了一个客户端的模型对象的缓存,存储器通过代理加载数据,并且提供了针对其所包含模型实例数据的排序、过滤、查询模型实例“ (摘自Sencha Touch 文档)


针对新闻item存储器模型将在app/stores/目录下创建,并且放置在NewsItemsStore.js 的这个文件中,文件包含下面的内容:
Ext.regStore('NewsItems', {      model: 'NewsItem',      proxy: {        type: 'ajax',        url : 'app/data/news.json',    },      autoLoad: true});


把新创建的模型文件包含进index.html文件中, 并且放在模型models的后面.

<!-- MODELS --><script src="/app/models/NewsItemModel.js" type="text/javascript"></script>  <!-- STORES --><script src="/app/stores/NewsItemsStore.js" type="text/javascript"></script>


Ext.regStore 函数被用在在存储器创立时调用,并且类似于regModel, 我们把存储器的名字和所配置的对象作为一个参数传递给它。


因为一个存储器是模型实例的集合,我们必须提前告知在其中的对象类型是什么,因此我们将设置所配置的对象的模型类型为我们所设定的NewsItem。数据的源头将被定义为代理所配置的对象。


“代理是被存储器用来进行加载和存储模型数据处理来使用的.通常开发者将不必直接和代理进行连接和交互.” (摘自Sencha Touch 官方文档)


当我们定义一个代理对象时两个属性必须要求具备:数据查询检索所请求的类型及url。对于NewsItems 存储器来说,我们将采用ajax进行更新请求并且url指向到一个JSON新闻文件 ,因此缺省的和期望的请求结果模式就是JSON格式。


因为我们希望我们的新闻尽可能的被自动的加载,我们将设置存储器的对象的自动加载属性为True.
原创粉丝点击