我想创建一个简单的应用程序,它使用 Sencha Touch 2 和 RSS 源向我显示我最喜欢的新闻网站的最新故事列表。
如何从 rss-feed 获取数据,然后将其显示为列表,显示标题、作者、日期和内容?
我可以获得最新新闻报道的列表,但我只能设法显示每个项目的标题/标题,而不是作者、日期、片段等。这是我的代码:
1 个模型,1 个商店,1 个视图,1 个 app.js:
//The store
Ext.define("NewsApp.store.EbStore", {
extend: "Ext.data.Store",
requires: ["Ext.data.proxy.JsonP", "Ext.dataview.List" ],
config: {
model: "NewsApp.model.NewsListModel",
autoLoad: true,
proxy: {
type: 'jsonp',
url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=5&q=http://feeds.feedburner.com/newsapp_pol',
reader: {
type: 'json',
rootProperty: 'responseData.feed.entries'
}
}
}
});
//The Model
Ext.define("NewsApp.model.NewsListModel", {
extend: "Ext.data.Model",
config: {
fields: [
{name: 'title', type: 'auto'},
{name: 'author', type: 'auto'},
]
}
});
//The view
Ext.define("NewsApp.view.NewsList", {
extend: "Ext.Container",
requires: "Ext.Toolbar",
alias: "widget.newslistview",
config: {
layout: {
type: 'fit'
},
items: [{
xtype: "toolbar",
title: "Danske Nyheder",
docked: "top",
items: [
{
xtype: 'spacer'
},
{
xtype: "button",
text: "Indstillinger",
ui: "action",
id: "settingsButton",
iconMask: true,
iconCls: 'settings'
},
{
xtype: "button",
text: "Refresh",
ui: "action",
id: "refreshButton",
iconMask: true,
iconCls: 'refresh'
}
]
},
{
xtype: "list",
store: "EbStore",
itemId:"EbList",
onItemDisclosure: true,
itemTpl: '{title}'
}
],
}
});
// And the app.js just for kicks
Ext.application({
name: "NewsApp",
models: ["NewsListModel"],
stores: ["EbStore"],
views: ["NewsList"],
launch: function () {
console.log("App starts");
var newsListView = {
xtype: "newslistview"
};
Ext.Viewport.add([newsListView]);
}
});
使用此代码,我可以很好地显示 rss 项目的标题。但是如果我将 {title} 更改为 {author},列表项会在我的视图中创建,但没有任何内容。我想阅读的 RSS 使用的是普通标准:http: //feeds.feedburner.com/newsapp_pol
那么,我如何不仅显示标题并访问 rss 的其余部分?
我想这归结为我不了解代理代码中正在捕获哪些数据,或者究竟是如何或以什么格式捕获的。
有人可以帮忙吗?:-)
我已经查看了这两个 Sencha Touch RSS 阅读器的示例,两者都非常出色,只是代码太高级了,我无法理解:
http ://www.sencha.com/apps/rssreader/
https://github .com/AndreaCammarata/FeedBurner-RSS-Reader