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

创建存储器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.

原文地址:https://www.cnblogs.com/fyq891014/p/3294786.html