Extjs 如何将数据从data.store提取到数组?
以下是我的xml代码:Extjs 如何将数据从data.store提取到数组?,extjs,sencha-touch,Extjs,Sencha Touch,以下是我的xml代码: <?xml version="1.0" encoding="UTF-8"?> <root> <investors> <investor name="Active"/> <investor name="Aggressive"/> <investor name="Conservative"/> <investor name="Day Trader"/>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<investors>
<investor name="Active"/>
<investor name="Aggressive"/>
<investor name="Conservative"/>
<investor name="Day Trader"/>
<investor name="Very Active"/>
</investors>
<events>
<event period="3 Month Expiry"/>
<event period="LEAPS"/>
<event period="Monthlies"/>
<event period="Monthly Expiries"/>
<event period="Weeklies"/>
</events>
<prices>
<price rate="$0.5"/>
<price rate="$0.05"/>
<price rate="$1"/>
<price rate="$22"/>
<price rate="$100.34"/>
</prices>
</root>
但这对我不起作用
请帮忙
谢谢你,getRange应该这样做。确保R大写 假设这只是您问题中的一个输入错误,如果getRange没有返回记录数组,则很可能是您的存储没有正确加载记录。你确定你的商店正确加载了记录吗?装载后使用firebug检查仓库 编辑 看起来您在存储加载完数据之前运行了getRange。您正在创建时加载存储autoLoad:true,但是当XMLHttpRequest在后台仍然挂起时,您将立即运行getRange 您需要侦听存储的加载事件,并使用一个处理程序来处理数据 EDIT2这项工作:
Ext.onReady(function(){
console.log('hi');
var prstore = new Ext.data.Store({
url: 'xmlformat.xml',
autoLoad: true,
reader: new Ext.data.XmlReader({
record: 'price'
}, [{name: 'Pri', mapping: '@rate'}])
});
prstore.on('load',function(store,records,opts){
console.log(store.getRange());
});
});
您应该能够在firebug控制台中看到Ext.data.Record对象数组。@timdev ya,我的记录正在加载数据并显示在网格中,您正在执行prstore.getRange;加载数据后,您没有执行prstore.getrange?@timdev是的,我是这样做的。看起来您并不是在等待商店完成数据加载。编辑即将到来…@timdev我得到的输出是:[object,object],[object,object],[object,object],[object,object]有什么方法可以将这些对象中的数据检索到:hello={$0.5,$0.05,$1,$22,$100.34}
hello = {"$0.5","$0.05","$1","$22","$100.34"}
Ext.onReady(function(){
console.log('hi');
var prstore = new Ext.data.Store({
url: 'xmlformat.xml',
autoLoad: true,
reader: new Ext.data.XmlReader({
record: 'price'
}, [{name: 'Pri', mapping: '@rate'}])
});
prstore.on('load',function(store,records,opts){
console.log(store.getRange());
});
});