2012-11-29 3 views
0

스파 템플릿 (C#, mvc 4)에서 sammy 스크립트를 사용합니다. 기본 링크는/#/home,/#/contacts,/#/faq 등입니다. /home,/contacts,/faq에서 어떻게 변경합니까?sammy 경로를 변경하는 방법

답변

0

해시는 URL의 로컬 부분을 윤곽으로 나타내며 location.hash 메서드를 사용하여 수정할 수 있습니다. 전체 URL (예 : location.href)을 수정하면 브라우저가 수정 된 URL을로드합니다.

새미가 사용하는 로컬 URL을 #home 또는 #contacts으로 변경하면 시작 부분에 빈 해시가 없으므로 원하는 것처럼 보입니다.

아래, 새미는 href="#Home"와 앵커 요소에 대한 사용자의 클릭으로 URL 변경을 캡처 한 다음 템플릿을 얻기 위해 AJAX 요청을 전송 :

Sammy(function() { 
/* Navigation requests 
*/ 
    this.get("#:view", function() { 
     switch (this.params.view) {     
      case "Home": 
       $.ajax("Home/Index", { 
        type: "GET", 
        success: function (result) { 
         //Append result to page 
        }, 
        cache: false 
       }); 
       break; 
      case "Search": 
       $.ajax("Search/Index", { 
        type: "GET", 
        success: function (result) { 
         //Append result to page 
        }, 
        cache: false 
       }); 
       break;     
     }; 
    }); 
}).run(); 
+0

정확하지 않게합니다. "#/home"과 "#/contact"의 2 개 경로가 있습니다. 모든 것이 잘 작동합니다. 이제이 2 개의 경로를 변경하고 "집"및 "연락처"('#'접두어 없음)를 원합니다. 브라우저를 실행하면 "찾을 수 없음"이라고 표시됩니다. 어떻게하면 브라우저를 속일 수 있습니까? – yakov

+0

AJAX 요청 대신에'location.assign ("home")'을 사용할 수는 있지만'location.href = '가 작동하는 방식과 비슷하게 새로운 문서를 로딩합니다. 단일 페이지 앱을 제작한다고 했으므로 비동기 적으로 페이지에 새 콘텐츠를로드하고 입력하려는 경우, 해시를 의미하는 로컬 URL을 사용해야합니다. – chrisjsherm

관련 문제