0

標準ページと、カテゴリと記事がリストされたニュース モジュールで構成される標準 Web サイトを再作成するように設計されたアプリがあります。ニュースにアクセスすると、ニュース ページのコンテンツが表示され、カテゴリのリストまたは記事の一覧が表示されます。この場合、ニュースページを閲覧すると、(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