2011-07-29 2 views
1

자바 스크립트 및 jQuery 개발에 대한 충분한 경험이 없으므로 누군가가 sammy.js 및 HTML 템플릿을 사용하는 함수를 작성하는 방법을 알려주고 있는지 궁금합니다. 나는로 이동하거나 ...html#/home 클릭하면sammy js의 경로에 따라 html 파일을로드하려면 어떻게해야합니까?

<script> 
    ;(function($) { 

     var app = $.sammy(function() { 

     this.get('#/', function() { $('#content').text(''); }); 

     this.get('#/home', function() { $('#content').load('main.html'); }); 

     }); 

     $(function() { app.run() }); 

    })(jQuery); 

</script> 

이 코드는 main.html의 내용을두고 있지만 단지를 파악 자바 스크립트 함수를 찾고 있어요 :

내가 지금 가지고 작업 코드 URL의 끝점 ( ..#/ 다음의 단어)을 찾아 동일한 이름의 html 페이지를 가져옵니다.

pseudo-code에서 : 도움을

if(somethingWasClicked and uses sammy.js) 
    loadContent(); 

function loadContent() { 
    endpoint = figureOutEndPoint(); 
    $('#content').load(endpoint.html); 
} 

감사

답변

8

당신은 단지에 route with a parameter 필요 : 다른 경로 후

this.get('#/:page', function() { 
    $('#content').load(this.params['page'] + '.html'); 
}); 

가 그건 확인하거나 요구받을 것이다 거의 모든 것 (예 : 이미 처리중인 #/home).

당신은 할 수 물론, 경로에 다른 매개 변수를 넣어 :

this.get('#/:where/:is/:pancakes/:house', function() { 
    // Do things with this.params['where'], this.params['is'], 
    // this.params['pancakes'], and this.params['house']. 
}); 

당신은 당신이 주문 권리를 얻거나 경로가 서로 싸울 수 있는지 확인해야합니다. 경로가 추가 된 순서와 일치하므로 일반 범용 경로가 일반적으로 하단에 표시됩니다.

+0

감사합니다. 그거야! – Kartik

+0

@Kartik : Sammy.js에서 내가 좋아하는 JavaScript 라이브러리 중 하나입니다. :) –

+0

안녕하세요. '... html/# info'로 직접 이동하는 이유가 무엇입니까? info isnt 기본 페이지 .. 그것은'#/info' 페이지에 대한 링크를 특별히 클릭하지 않으면 info.html을로드하는 것처럼 보입니다. 그게 일어날 것 같니? sammy.js가이 링크를 지원하지 않습니까? – Kartik

관련 문제