0

我有一个应用程序,旨在重新创建一个标准网站,包括标准页面和一个列出类别和文章的新闻模块。当您访问新闻时,会显示来自新闻页面的内容,以及类别列表或文章列表。在这种情况下,当您查看新闻页面时,将显示 (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 有类似的问题吗?

非常感谢

4

0 回答 0