如何将未完全映射到数据源的模型连接到商店

时间:2014-04-17 09:33:33

标签: extjs sencha-touch

我有一个包含许多节点的xml数据源,但我只对一些节点感兴趣。

<config generated_at="2014-04-17 18:44:44"> <acModes>A,D,O</acModes> <acModeNames A="Arrival" D="Departure" O="All"/> <acShapes B="ac-clone" C="ac-clone" Default="ud-clone" G="tp-clone" H="he-clone" J="ac-clone" M="ud-clone" P="tp-clone" R="ac-clone" T="tp-clone" U="ud-clone" Z="ud-clone"/> <acColours> <Unknown number="0"> <A fill="0xffcc00" stroke="0x008000" stroke-width="1"/> <D fill="0xffcc00" stroke="0x008000" stroke-width="1"/> <O fill="0xffcc00" stroke="0x990066" stroke-width="1"/> </Unknown> <MEL number="1"> <A fill="0xd10000" stroke="0xf40000" stroke-width="1"/> <D fill="0x33" stroke="0xcc" stroke-width="1"/> <O fill="0xffcc00" stroke="0x008000" stroke-width="1"/> </MEL> </acColours> <trColours> <Unknown number="0"> <A fill="none" stroke="0xffcc00" stroke-opacity="0.7" stroke-width="150"/> <D fill="none" stroke="0xffcc00" stroke-opacity="0.7" stroke-width="150"/> <O fill="none" stroke="0x990066" stroke-opacity="0.7" stroke-width="150"/> </Unknown> <MEL number="1"> <A fill="none" stroke="0xf40000" stroke-opacity="0.7" stroke-width="150"/> <D fill="none" stroke="0xcc" stroke-opacity="0.7" stroke-width="150"/> <O fill="none" stroke="0xffcc00" stroke-opacity="0.7" stroke-width="150"/> </MEL> </trColours> <communities enable="0"/> ..........................many lines of data...............................
<nmts replicate="1" showPortables="1" tagfields="type,metric,starttime,endtime,maxtime,duration" visible="visible"> <download_queue enable="0"/>
    <locations name="Keilor East" download_noise_data="1" latitude="-37.73228" locid="3" longitude="144.86900" monitor_location_id="318" monitor_name="mel3"status="active" tagOrientation="SE" type="fixed" x="2857.2" y="23539.3"/>
    <locations name="Bulla" download_noise_data="1" latitude="-37.60686" locid="2" longitude="144.82314" monitor_location_id="320" monitor_name="mel2"status="active" tagOrientation="SE" type="fixed" x="-2247.9" y="41177.8"/>
</nmts>
 </config>
例如,我只想检索&#34;位置&#34;在&#34; nmts&#34;节点

这是我的代码

Ext.define('myApp.store.myStore', {
    extend: 'Ext.data.Store',
    model:'myApp.model.myModel',
    storeId: 'myStore',
    autoLoad: true,

    proxy: {
        type: 'ajax',
        url: 'http://webtrak.bksv.com/mel/configuration',
        reader: {
            type: 'xml',
            rootProperty: 'nmts',
            record:'locations'
        }
    }
});

这是我的模特

Ext.define('myApp.model.myModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            { name: 'name', type: 'string' },
            { name: 'lat', type: 'float' },
            { name: 'lng', type: 'float' },
            { name: 'locid', type: 'string' },
            { name: 'monitor_location_id', type: 'int' },
            { name: 'monitor_name', type: 'string' },
            { name: 'status', type: 'string' },
            { name: 'tagOrientation', type: 'string' },
            { name: 'stationType', type: 'string' },
            { name: 'x', type: 'float' },
            { name: 'y', type: 'float' }

        ]
    }
});

您可以看到我的模型只包含数据源中的部分属性。

由于数据源在远程服务器上,我无法在浏览器中测试,但在设备上进行测试时,我无法获得任何错误反馈,因此无法进行调试的原因。

我不确定我是否以正确的方式编写代码,如果有错误请指出我的错误。

谢谢你的朋友们。

0 个答案:

没有答案