在Sencha Touch模型中添加自动初始化功能以操作模型的数据

时间:2014-04-29 09:32:48

标签: sencha-touch-2

当我加载商店时,由于API结构,我在模型中得到一个json对象:

Ext.define('TestApp.model.SecretKeyModel', {
    extend: 'Ext.data.Model',
    config:{
        identifier: {
            type: 'uuid'
        },
        fields: [
            { name:'theRecord', type:'json' }
        ]
    },
    extractToken: function() {

        var record = this;

        var token = record.initSession.token;
        console.log('token: ' + token);
    }
});

我需要从该json对象中提取令牌。

为此,我想我应该在模型内部写一个函数。

如何在商店加载时调用它来操纵数据并提取令牌?

1 个答案:

答案 0 :(得分:0)

我在1小时前遇到过类似情况,我需要在加载过程中或在移民过程中编辑数据。我以这个解决方案结束了:

Ext.define('TestApp.store.MyStore', {
    extend: 'Ext.data.Store',
    requires: ['TestApp.model.SecretKeyModel'],
    config :{
        model: 'TestApp.model.SecretKeyModel',
        proxy: {
            type: 'ajax',
            url: TestApp.utils.GlobalVariables.getServerUrl(),
            reader: {
                type: 'json',
                rootProperty: ''
            }
        },
        listeners: {
            refresh: function(store, data, eOpts) {
                store.each(function (item, index, length) {
                    item.extractToken(); // call this on every record loaded in the store
                });
            }
        }
    }
});