0

我正在使用Javascript SOAP Client从我的 SOAP Web 服务以 XML 格式接收响应。我将我想要的所有数据解析为一个字符串。

[{ZNA_COD:'111',ZNA_DESIG:'Blabla'},{ZNA_COD:'11',ZNA_DESIG:'Blabla'},{ZNA_COD:'1',ZNA_DESIG:'Blabla'},{ZNA_COD:'2',ZNA_DESIG:'Blabla'},{ZNA_COD:'11111',ZNA_DESIG:'Blabla'}]

如何将其存储在 Sencha Touch 2 中?最好的方法是什么?

4

2 回答 2

1

我用过 ST1.1,只是从 ST2 开始。

我想这取决于你想要做什么。如果您的数据总是从实时源中提取,您可以只使用 Ext.data.Store 并定义一个阅读器。在您的情况下,它将具有一种 xml。

Ext.define('ZNA', {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            {name: 'ZNA_COD',  type: 'string'},
            {name: 'ZNA_DESIG', type: 'string'}
        ]
    },
});

var store = Ext.create('Ext.data.Store', {
    model: 'ZNA',
    proxy: {
        type: 'ajax',
        url : 'www.your-service-url.com',
        reader: {
            type: 'xml',
            record: 'ZNA'
        }
    }
});
store.load();

如果您使用此过程,它会在您调用 load 方法时自动将数据拉入您的存储中。或者您可以在其上设置 autoLoad。

如果您的设备上已有数据,并且对您获取数据的方式感到满意。然后,您可以创建模型的新实例并用您的值填充它。然后你会把它保存到你的商店。

var instance = Ext.create('ZNA', {
    ZNA_COD:'111',
    ZNA_DESIG:'Blabla'
});

store.add(instance);

你可能需要检查语法,我可能有一些 ST1.1 的东西漂浮在那里。

于 2012-04-12T20:25:00.020 回答
0

首先,您应该将数据解析为有效的 JSON 字符串,例如:{data: [your data here]}如果您设法做到这一点,那么 remaning 任务非常简单,包括 2 个步骤:

  • 用于Ext.decode将您的字符串解析为JSON 对象
  • thenresult.data现在是你的结果数组。遍历它们并将它们添加到Ext.data.Store非常简单,因为我认为不需要在这里写下来,不是吗?
于 2012-04-12T16:41:25.677 回答