Sencha Touch 添加个人记录到存储

Posted

技术标签:

【中文标题】Sencha Touch 添加个人记录到存储【英文标题】:Sencha Touch add individual records to store 【发布时间】:2014-05-16 19:52:54 【问题描述】:

我已经和这个人战斗了一段时间。看似微不足道,却又无从下手。 我只想创建一个商店,然后用基于 UI 操作的记录慢慢填充它。 (按一个按钮 > 将数据添加到商店,按下一个按钮 > 将该数据添加到商店等...)

每当我尝试添加新记录时(在添加第一个记录之后),之前的记录都会被清除,我的商店始终只有 1 条记录。

如何向存储中添加新记录(在不同的时间,不断添加新的单独记录)?

preparePost: function(data)

    //data is an object that comes from a button config...

    var mod = Ext.define('App.model.PostAttendanceModel', 
        extend: 'Ext.data.Model',
        config: 
            identifier: 
                type: 'uuid'
            ,
            fields:[
                'items'
            ]
        
    );

    var createStore = Ext.create('Ext.data.Store', 
        model: mod,
        storeId:'PostAttendanceStore'
    );

    var getStore = Ext.getStore('PostAttendanceStore');

    var store = typeof createStore != "undefined" ? getStore : createStore;

    var items = 
            attendancereasonid: data.attendancereasonid,
            level: data.level,
            personid: data.personid
    ;

    store.add(items);

    console.info(store);

    //it is always the last record added, without "previous" records!

【问题讨论】:

你真的只想要一个包含对象的字段items吗?虽然它可以工作,但存储与字段保存原始类型的数据库表最相似。以上看起来像是attendancereasonidlevelpersonid 字段的候选对象。 我计划稍后将 items 数组发送到服务器,如下所示:screencast.com/t/owNf90fAtg 那是单独的字段,像这样的 json 是由 json writer 自动生成的。继续处理各个字段。 我同意这一点,但仍然 - 它只是保存最近添加的记录。出于某种原因,我无法在商店中添加超过一条记录。 【参考方案1】:

无论出于何种原因,它都不喜欢我动态创建模型和存储。因此,我创建了适当的模型和存储文件,将它们放入适当的 MVC 结构中 - 现在是

 store.add(items)

方法有效。

【讨论】:

问题是您创建了一个模型并存储了已使用的名称/ID,这将始终导致问题 那么当 preparePost() 在不同的时间被调用时,有没有办法解决这个问题? 对不起,我的评论应该只是对你的基本问题的解释,不同文件作为MVC结构的解决方案刚刚好。

以上是关于Sencha Touch 添加个人记录到存储的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 ajax 在 javascript 中使用个人 http 标头加载图像(sencha touch 2)

如何在 Sencha Touch 中的商店之间同步

Sencha Touch - 本地存储问题

iPhone Sencha Touch - 如何在 sencha touch 中将表格视图添加到拆分视图

Sencha Touch 存储同步

Sencha Touch filter dataview 存储和刷新列表