2016-09-06 9 views
1

를 저장하지 않습니다Backbone.history.navigate 내가 어떤 경로를 매개 변수를

다음
routes: { 
    "": "main", 
    "!/": "main", 
    "!/page": "page", 
    "!/page/:id": "page" 
}, 

내가 예를 들어 일부 HTML 링크가 : 난 내 링크 나 액세스를 누르면

<a href="site.com/#!/page/3">my link</a> 

을 URL은 site.com/#!/page/3이며 괜찮습니다. 나는이 링크가있는 경우 그러나 :

<a href="javascript:void(0);" onclick="Backbone.history.navigate('!/page/3', {trigger:true});">my link</a> 

을 나는 site.com/#!/page/ (id=3없이) URL에 액세스 할 수 있습니다. ID가 아직 정의되어 있습니다. 하지만 페이지를 다시로드 한 후 URL이 있기 때문에 ID가 잘못되었습니다. site.com/#!/page 및 ID가 정의되지 않았습니다.

다음 링크 태그를 사용하여 백본에서 어떻게 탐색 할 수 있습니까?

<a href="javascript:void(0);" onclick="Backbone.history.navigate('!/page/3', {trigger:true});">my link</a> 

답변

0

백본 라우팅은 다른 앵커 링크와 마찬가지로 조각을 사용합니다. 당신은 그것을 사용하는 가정됩니다으로 href를 사용해야합니다 :

<a href="#!/page/3">my link</a> 

이와 같은 링크를 클릭, 그것은 기본 동작입니다으로 true로 trigger를 설정할 필요가 없습니다. 백본은 hashchange 또는 popstate 이벤트를 수신하고 필요한 경우 라우트를 트리거합니다.


또한, routes 해시 단순화 할 수있다 :

routes: { 
    "*anything": "main", 
    "!/page(/:id)": "page" 
}, 

routes documentation를 참조하십시오.

라우트에는 슬래시 사이의 단일 URL 구성 요소와 일치하는 :param 매개 변수 부분이 포함될 수 있습니다. 및 개의 URL 구성 요소와 일치 할 수있는 *splat 개의 부분을 표시합니다. 경로의 일부는 괄호 (/:optional)에 그 주위를 으로 선택적으로 지정할 수 있습니다.