2013-03-06 1 views
3

저는 몇 가지 응용 프로그램에서이 프로그램을 실행했습니다. 그래서 Backbone 역사가 잘못되어 있는지 궁금합니다. 여기에 내가 두 페이지가 상황 ...Backbone.history.start()는 페이지를 떠나는 것에서 뒤로 버튼을 차단합니다.

이야, 이제 가정 해 봅시다 :

index.html 
app.html 

인덱스 페이지는 app.html에 대한 링크와 일반 평면 HTML 페이지입니다. 앱 페이지에서 Backbone.history.start()이 앱 페이지에 두보기 사이를 전환하는 데 사용되는 해시 상태 관리, 최대 해고라고 말 :

app.html#search 
app.html#results 

그래서 앞뒤로 #search#results 페이지 작품 사이의 탐색 큰. 거기에 문제 없습니다. 이 문제는 뒤로 단추를 사용하여 index.html까지 다시 이동하려고 할 때 발생합니다. 인덱스 페이지로 돌아가는 경로는 app.html (해시 상태 없음)에 멈춤을 포함하며 백본 라우터가 빠진 해시 상태를 충실하게 채워 app.html#search에 다시 돌아옵니다. 다시 버튼을 클릭하면 app.html으로 이동하여 누락 된 해시 상태를 다시 채 웁니다 ... 기본적으로 이제는 루프가되어 다시 페이지로 돌아갈 수 없습니다. 푸시 상태를 사용할 때 이와 동일한 문제가 발생합니다.

이것은 기본 페이지 URL 위에 자동으로 자체 라우팅 시스템을 실행하는 앱의 잠재적 인 공통 문제인 것처럼 보입니다. 누구든지 이것을 피할 수있는 좋은 방법을 알고 있습니까?

답변

2

문제는 app.html이 자체적으로 아무 것도하지 않는다는 것입니다. 따라서 항법을해도 응용 프로그램이 깨질 수 있습니다.

routes: { 
    "": "search", 
    "results": "results" 
} 
+0

감사합니다, 결코 그런 식으로 생각하지 :이 경우

은, 당신이 할 수있는 것은 바로 기본 페이지로 사용하는 대신 다른 루트 경로를 리디렉션이다. 기본 URL이 시작점 일 필요가 있다는 것을 완벽하게 이해합니다. 유감스럽게도, 우리의 UX 사양은 일반적으로 조건 적 진입 점 논리 (entryal-point logic)에 맞추어 지는데, 이는 근본적으로이 문제의 원인입니다. 나는 미래에이 문제를 꽃 봉오리에 집어 넣을 준비가 될 것입니다. – bigmac

관련 문제