0
스파 템플릿 (C#, mvc 4)에서 sammy 스크립트를 사용합니다. 기본 링크는/#/home,/#/contacts,/#/faq 등입니다. /home,/contacts,/faq에서 어떻게 변경합니까?sammy 경로를 변경하는 방법
스파 템플릿 (C#, mvc 4)에서 sammy 스크립트를 사용합니다. 기본 링크는/#/home,/#/contacts,/#/faq 등입니다. /home,/contacts,/faq에서 어떻게 변경합니까?sammy 경로를 변경하는 방법
해시는 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();
정확하지 않게합니다. "#/home"과 "#/contact"의 2 개 경로가 있습니다. 모든 것이 잘 작동합니다. 이제이 2 개의 경로를 변경하고 "집"및 "연락처"('#'접두어 없음)를 원합니다. 브라우저를 실행하면 "찾을 수 없음"이라고 표시됩니다. 어떻게하면 브라우저를 속일 수 있습니까? – yakov
AJAX 요청 대신에'location.assign ("home")'을 사용할 수는 있지만'location.href = '가 작동하는 방식과 비슷하게 새로운 문서를 로딩합니다. 단일 페이지 앱을 제작한다고 했으므로 비동기 적으로 페이지에 새 콘텐츠를로드하고 입력하려는 경우, 해시를 의미하는 로컬 URL을 사용해야합니다. – chrisjsherm