我制作了一个从外部站点获取新闻的应用程序。
我在这个商店中使用了一个从 JsonP 中调用项目的列表:
Ext.define('Grottaglie.store.Articoli', {
extend: 'Ext.data.Store',
requires: [
'Grottaglie.model.Articolo'
],
config: {
autoLoad: true,
model: 'Grottaglie.model.Articolo',
storeId: 'articoliStore',
proxy: {
type: 'jsonp',
url: 'http://www.grottaglie24.it/rss/lastarticle.php?callback=callback1',
callbackKey: 'callback1',
reader: {
type: 'json',
idProperty: 'id'
}
}
}
});
这个 JsonP 有一个 id,我想用它来通过另一个 JsonP 显示详细信息,该 JsonP 仅包含列表中每个项目的详细信息:
视图代码:
Ext.define('Grottaglie.view.Main', {
extend: 'Ext.navigation.View',
config: {
id: 'mainView',
items: [
{
xtype: 'list',
title: 'Grottaglie24',
itemId: 'articoli',
store: 'articoliStore',
itemTpl: '{id} {text}',
listeners: {
select: function(view, record) {
Ext.getCmp('mainView').push({
title: 'Politica',
xtype: 'panel',
store: Ext.create('Ext.data.Store', {
fields: ['title'],
proxy: {
type: 'jsonp',
url: 'http://www.grottaglie24.it/rss/article.php?callback=callback' + record.get('id'),
callbackKey: 'callback' + record.get('id'),
reader: {
type: 'json',
}
},
autoLoad: true
}),
html: '{title}'
});
}
}
}
]
}
});
所以我把“articoliStore”称为主列表,正如你在“listeners”中看到的那样,我创建了一个新的商店,它引用了一个 jsonp 只是为了详细说明,在这种情况下只有新闻的标题。例如这个网址:http ://www.grottaglie24.it/rss/article.php?callback=callback621
我成功地通过回调调用了 id,但是当我点击列表中的项目时不显示任何内容。例如,如果我点击带有“id”= 698 的项目,则会收到以下错误: TypeError: 'undefined' is not a function (evalating 'Ext.data.JsonP.callback698({"title": "Here the title of新闻......”})')
为什么它识别“id”并调用回调但我没有显示任何内容?
非常感谢。