2012-12-09 2 views
0

몇 가지 단계가 포함 된 등록 프로세스와 비슷한 것을 작성 중입니다. 따라서 Backbone.js를 공부 한 후 내 시스템을 선택하여 단일 페이지 시스템으로 만들고 싶습니다.Backbone.js : router.navigate를 사용하여 브라우저 기록을 조작하는 방법은 무엇입니까?

사용자가 현재 단계를 완료 할 때마다 작성한 다음 버튼을 클릭하고 router.navigate 메소드를 사용하여 URL을 업데이트하고 다음 페이지의 내용을로드하고 멋진 전환을 수행합니다. 자바 스크립트.

결과적으로 페이지가 새로 고쳐지지 않는 URL이 업데이트되어 원활한 사용자 환경을 제공합니다. 그러나 사용자가 브라우저의 뒤로 버튼을 클릭하면 URL은 이전 단계의 URL로 업데이트되지만 콘텐츠는 그대로 유지됩니다. 내 질문은 이러한 이벤트를 캡처하고 현재 이전 단계의 내용을로드하여 사용자에게 제시 할 수있는 방법을 통해 무엇입니까? 아니면 이전 버전의 페이지를로드하기 위해 브라우저 캐시를 사용할 수 있습니까?

편집 : 특히, 나는 this article에서 언급 한 것과 같은 것을 시도하고 있습니다.

답변

1

route.navigate는 사용하지 말고 라우터가 현재 경로를 기반으로 표시 할 양식을 결정하도록해야합니다.

exemple :

등록 과정의 현재 형태의 링크 : 라우터 정의

<a href="#form/2" ... 

: 다음

routes:{ 
    "form/:formNumber" : "gotoForm" 
}, 

gotoForm:function(formNumber){ 
// the code to display the correct form for the current url based on formNumber 
} 

및 라우팅 부트 스트랩 Backbone.history.start()를 사용

+0

답장을 보내 주셔서 감사합니다.하지만 실제로이 방법을 사용하지 않습니다. 개미 해시 태그의 존재. 특히 나는이 기사에서와 같은 것을 시도하고있다. http://artsy.github.com/blog/2012/06/25/replacing-hashbang-routes-with-pushstate/ –

+0

내가 생각한 것보다 더 많은 일을 한 후에 그걸로, 나는 트리거와 함께 navigate를 호출 할 필요가있다 : true는 컨텐츠의 업데이트를하는 라우터의 기능을 트리거한다. 해시 태그가 없습니다! –

관련 문제