我有一个应用程序,旨在重新创建一个标准网站,包括标准页面和列出类别和文章的新闻模块。当您访问新闻时,将显示新闻页面中的内容,以及类别列表或文章列表。在这种情况下,当您查看新闻页面时,(2)将显示类别。
在Chrome,Firefox和IE上,我可以在我的页面之间点击并返回新闻 - 进入类别,项目列表和文章,然后返回主条目新闻页面而不会出现问题。视图(对于主条目页面)始终显示正确的HTML。但是,在Windows和ipad上的Safari中,虽然一切都很好,但最终(或有时更早!),新闻条目页面上应显示类别的HTML不会显示。更令人沮丧的是问题是间歇性的 - 我可以点击回到其他页面,然后回到新闻,现在显示HTML类别!控制台显示正确的响应和来自我的休息电话的HTML:
[{"id":"22","indexID":"general", "name":"General"},{"id":"23","indexID":"newnewscat","name":"New News Cat"}]
只是我的观点没有显示HTML。
在我的路由器中,我有“news /:indexID”:“getNews”
并且getNews函数是
getNews:function(indexID) {
if (indexID == "index") {
this.getPage("news"); // display cms info for news page eg title and long desc
// do we show categories or listings?
var type = this.showItemListingOrCategories("news");
if (type.showCats == 1) {
// show cat listings
var newsCategories = new App.Collection.NewsCategory();
newsCategories.fetch({
success:function() {
var newsCategoryListing = new App.View.NewsCategoryListing({collection:newsCategories});
newsCategoryListing.render(".span9");
}
})
}
else {
// show item listings
var newsItems = new App.Collection.NewsItem([],{indexID:indexID});
newsItems.fetch({
success:function() {
var newsItemListing = new App.View.NewsItemListing({collection:newsItems});
newsItemListing.render({element:".span9",type:"page"});
}
});
}
}
}
newsCategoryListing视图是
App.View.NewsCategoryListing = Backbone.View.extend({
tagName: "table",
className:"catListing",
render:function($element){console.log("hello");this.collection.each(function(newsCategory) {
this.$el.append(new App.View.NewsCategoryItem({model:newsCategory}).render().el).appendTo($element);
},this);
return this;
});
我在上面的渲染函数中添加了一个console.log(“hello”) - 当无法显示类别列表的html时,这个正确显示。
我希望这是足够的信息 - 其他人是否有与Safari类似的问题?
非常感谢