我正在使用ext.js从XML文件中获取数据并循环显示结果以在模板中显示它们,但它不起作用。我可以成功遍历结果并将它们记录到控制台,但是当我将它们传递给模板时,不会显示任何内容。这是我的代码:
Ext.regModel('Work', {
fields: ['title', 'thumb', 'video']
});
var workStore = new Ext.data.Store({
model: 'Work',
proxy: {
type: 'ajax',
//url : 'http://superfad.com/work/work_xml',
url : 'lib/xml/work_xml.xml',
reader: {
type: 'xml',
record: 'project'
}
}
});
t_work = new Ext.Component({
cls:'t_work', title:'Work',
title:'Work',
scroll: 'vertical',
tpl: new Ext.XTemplate(
'<tpl for=".">',
'<div class="work">',
'<h3 class="work_title">{title}</h3>', //this doesn't work
'<div class="work_thumb">',
'<img src="{thumb}" alt="{title}"/>', //this doesn't work
'</div>',
'</div>',
'</tpl>'
)
});
function loadWork(){
workStore.load({
callback: function(data) {
var projects = data;
t_work.update(projects)
for (var i = 0, iln = projects.length; i < iln; i++){
console.log(projects[i].get('title')) //this works
}
}
});
}
有人有什么想法吗?
答案 0 :(得分:0)
你可以分享你的xml吗?
确保您的模型字段具有与xml文件中完全相同的名称,包括大写字母。可能是你的模型没有正确设置,我自己也有这个问题。 还要确保您在xml文件中没有根节点。如果您有根节点,请使用以下命令(用节点名替换&#39; rootnode&#39;):
var workStore = new Ext.data.Store({
model: 'Work',
proxy: {
type: 'ajax',
//url : 'http://superfad.com/work/work_xml',
url : 'lib/xml/work_xml.xml',
reader: {
type: 'xml',
record: 'project',
root: 'rootnode'
}
}
});