[英]Sencha Touch XML List
嗨,我有一个关于Sencha Touch的XML列表的问题。
我在Sencha Touch中加载了一些XML,我想将它们显示为列表:
这是我的代码:Sencha:
Ext.setup({
onReady: function() {
Ext.regModel('navModel', {
fields: [
{name:'id'},
{name:'title'}
]
});
var navi = new Ext.data.Store({
autoLoad:true,
model: 'navModel',
method: 'POST',
proxy: {
type: 'ajax',
url : 'navi.xml',
reader: {
type : 'xml',
root: 'menu',
record:'navigation'
}
}
});
var something = new Ext.List({
store: 'navi',
title: 'asdfasdf',
emptyText: 'No data',
fulscreen: true,
itemTpl: '{id} - {title}'
});
var rootPanel = new Ext.TabPanel({
fullscreen:true,
items:[something]
});
}
});
XML:
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<navigation>
<id>1</id>
<title>Hello</title>
</navigation>
<navigation>
<id>2</id>
<title>Test</title>
</navigation>
</menu>
我可以读取XML,但无法在列表中显示它。
感谢答案
尝试将TabPanel更改为Container,这可能会对您有所帮助!
您必须写出不带引号的商店名称。
对于所有在地图方面遇到问题的人...
您必须在sencha-touch.js的末尾添加以下解决方法:
Ext.override( Ext.data.XmlReader, {
createAccessor: function() {
var selectValue = function(key, root, defaultValue){
if( key == '#' ){
return root.tagName;
}
if( key.indexOf( '@' ) != -1 ){
var property = key.split( '@' )[ 1 ];
key = key.split( '@' )[ 0 ];
}
var val;
if( key.length ){
var node = Ext.DomQuery.selectNode(key, root);
if( node && node.firstChild ){
node = node.firstChild;
}
}
else{
var node = root;
}
if(node){
if( typeof( node.getAttribute ) != 'undefined' && typeof( property ) != 'undefined' ){
val = node.getAttribute( property );
}
else{
val = node.nodeValue;
}
}
return Ext.isEmpty(val) ? defaultValue : val;
};
return function(key) {
var fn;
if (key == this.totalProperty) {
fn = function(root, defaultValue) {
var value = selectValue(key, root, defaultValue);
return parseFloat(value);
};
}
else if (key == this.successProperty) {
fn = function(root, defaultValue) {
var value = selectValue(key, root, true);
return (value !== false && value !== 'false');
};
}
else {
fn = function(root, defaultValue) {
return selectValue(key, root, defaultValue);
};
}
return fn;
};
}(),
});
因此您可以使用“ @attributename”访问xml的属性
如果您想访问子属性,请输入“ childname @ attributename”
我希望我能帮助您..为此花了几个小时..;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.