2012-10-15 3 views
3

sammy.js를 탐색에 사용하고 링크를 변경 한 후에 발생하는 이벤트를 처리해야합니다. 예를 들어, 사용자가 "#/contact"링크를 클릭하면 탐색이 성공한 후 내 이벤트가 트리거되기를 원합니다. "after"속성을 발견하고이 코드를 삽입하려고 시도했습니다.sammy.js를 사용하여 "route"이벤트를 구독하는 방법은 무엇입니까?

this.after('#/contact', function() { 
    //my code 
}); 

그러나 실행 중이 아닙니다. 내가 뭘 잘못하고 있니?

는 사실,이 문제는 다음과 같은 상황에서왔다 : 홈 및 연락처 :

내가 2 개 탭이있는 페이지가 있습니다. 연락처에는 Google지도가 포함되어 있습니다.

사용자가 먼저 연락처로 이동하면 Google지도가 제대로로드되지만 사용자가 홈 탭으로 이동 한 다음 연락처 탭으로 전환하면 Google지도가 제대로로드되지 않아지도의 작은 부분 만 볼 수 있습니다. 왼쪽 상단 구석에

제안 사항?

미리 감사드립니다.

답변

2

나는이 처리하는 사용자 정의 이벤트를 사용하는 것이 좋습니다 것 :

var app = $.sammy(function() { 

    this.get('#/contact', function() { 
     this.trigger('myEvent', { myData: 'This a contact!' }); 
    }); 

}); 

아니면 실행 된 모든 경로 듣고 자한다면, 시도 :

this.bind('run-route', function() { 
    console.log("I got routed"); 
} 
+0

감사합니다. 그러나 'myEvent'를 호출하면 실제 '연락처'보기가로드되지 않습니다. 내가 뭐 잘못하고 있니? – yakov

+0

그래서 경로를 변경할 때 이벤트를 발생시키지 않고 경로를 변경하려고합니까? –

+0

이벤트를 발생시켜야하고이 페이지가 평소와 같이로드 될 것으로 예상합니다 – yakov

0

내가 바로 당신을 이해하는 경우를 , 당신은이 작업을 수행 할 필요가 :

location.hash = "contact";

그리고 t 그는 루트 이벤트가 발생합니다.

관련 문제