現在、バックボーンを使用してアプリケーションを作成していますが、何らかの理由でビューを更新しませんが、特定の状況でのみ更新されます。
index.html#/blog/2 でページを更新すると、ページが正常に読み込まれ、すべてがうまく機能します。ただし、index.html#/blog/1 のページを更新してから、URL を index.html#/blog/2 に変更して Enter キーを押しても (更新ではありません)、変更が反映されることはありません。
これは私のルーターです:
makeChange: function() {
// Set activePage to the current page_id => /blog/2
var attributes = {activePage: this.page_id};
var $this = this;
// Loop through all sections in the app
app.sections.some( function( section ) {
// Check if section has the page
if( !section.validate( attributes ) )
{
// If it has, set the activePage to /blog/2
section.set( attributes, {silent: true} );
// Set active section to whatever section-id was matched
app.set( {activeSect: section.id}, {silent: true} );
console.log('Calling change!');
// Calling change on both the app and the section
app.change();
section.change();
console.log('Change complete!');
return true;
}
});
}
これはアプリ ビューです (上記の「アプリ」として参照されています^)。
var AppView = Backbone.View.extend({
initialize: function( option ) {
app.bind( 'change', _.bind( this.changeSect, this ) );
},
changeSect: function() {
var newSect = app.sections.get( app.get('activeSect' ) );
var newSectView = newSect.view;
if( !app.hasChanged( 'activeSect' ) )
newSectView.activate( null, newSect );
else
{
var oldSect = app.sections.get( app.previous( 'activeSect' ) );
var oldSectView = oldSect.view;
newSectView.activate( oldSect, newSect );
oldSectView.deactivate( oldSect, newSect );
}
}
});
他のクラス/モデル/ビューを見る必要があるかどうか教えてください。