[英]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.