2013-11-23 4 views
0

내 단일 페이지 응용 프로그램에서 라우팅에 director.js을 사용하려고합니다. 문제는 응용 프로그램이 라우팅 테이블의 해시가 가리키는 기능을 수행하지 않는 주소 표시 줄에 페이지를 입력하여 페이지로 이동하는 경우입니다.director.js를 사용하여 해시를 기반으로 함수를 수행하십시오.

Here is the example on github - 해시가있는 페이지를 새로 고치거나 해시가있는 페이지로 직접 보내지 않으면 콘솔에 아무것도 표시되지 않습니다. 하지만 링크 중 하나를 클릭하면 콘솔 출력이 표시됩니다. 사용자가 직접 링크로 이동하면 라우팅 테이블에서 해시를 확인하고 라우팅 테이블에서 일치하는 기능을 수행하도록이 코드를 어떻게 변경할 수 있습니까? director.js

<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>A Gentle Introduction</title> 
    <script src="https://raw.github.com/flatiron/director/master/build/director.min.js"></script> 
    <script> 

     var author = function() { console.log("author"); }, 
      books = function() { console.log("books"); }, 
      viewBook = function(bookId) { console.log("viewBook: bookId is populated: " + bookId); }; 

     var routes = { 
     '/author': author, 
     '/books': [books, function() { console.log("An inline route handler."); }], 
     '/books/view/:bookId': viewBook 
     }; 

     var router = Router(routes); 
     router.init(); 

    </script> 
    </head> 
    <body> 
    <ul> 
     <li><a href="#/author">#/author</a></li> 
     <li><a href="#/books">#/books</a></li> 
     <li><a href="#/books/view/1">#/books/view/1</a></li> 
    </ul> 
    </body> 
</html> 

답변

0

내가 이사 사용하지 않은하지만 문제는 GitHub의는 "텍스트/일반의 MIME 타입은"원시 "파일을 제공한다는 사실이 될 수 활용하는 방법에 답변 해주세요 ". Director js 코드가 자바 스크립트로 처리되지 않아 테스트 페이지가 작동하지 않을 수 있습니다. 자신의 디렉터 사본을 다운로드하고 GitHub에있는 버전 대신 로컬 버전에 링크하십시오.

+0

@ Matt27에서 제안한 것처럼 데모 HTML 페이지를 새 파일에 저장하고 파일 시스템에서 실행해야합니다. 이것은 내가 오늘 한 일이며 모두 예상대로 일했습니다. 실제로 웹 서버에서 데모 페이지를 제공 할 필요는 없습니다. 로컬 파일 시스템이면 충분합니다. HTH. –