에 Backbone.History.navigate
을 재정의 할 수 시스템에서 Chrome 확장 프로그램 (예 : 슬래시를 덮어 쓴 경로 포함)에서 사용할 때 hashbang 버그를 처리하지 않고도 backbone.js가 제공하는 경우 pushstate 전체 체이스를 건너 뛰고 Router.navigate
에 직접 URL을로드 할 수 있습니다.
Router = Backbone.Router.extend({
navigate: function (url) {
// Override pushstate and load url directly
Backbone.history.loadUrl(url);
},
// Put routes here
routes: { }
});
그런 다음 역사를 변경하지 않고 새로운 경로를로드, 심지어 data-backbone
속성을 포함한 모든 링크 (예 : <a href="login" data-backbone>Login</a>
)에 액션을 결합하는 Router.navigate(url)
를 호출 할 수 있습니다으로 :
이것은 달성하기 위해 실제로 매우 간단합니다 다음과 같은 이벤트 :
$(function(){
// Initialize router
Router = new Router;
Backbone.history.start();
// Bind a[data-backbone] to router
$(document).on('click', 'a[data-backbone]', function(e){
e.preventDefault();
Router.navigate($(this).attr('href'));
});
});
AppRouter는 라우터 대신 사용해야합니다. Marionette Controller 클래스는 이제 더 이상 사용되지 않습니다. 모든 객체는 AppRouter에서 사용할 컨트롤러로 사용할 수 있습니다. – Paul