내 단일 페이지 응용 프로그램에서 라우팅에 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>
@ Matt27에서 제안한 것처럼 데모 HTML 페이지를 새 파일에 저장하고 파일 시스템에서 실행해야합니다. 이것은 내가 오늘 한 일이며 모두 예상대로 일했습니다. 실제로 웹 서버에서 데모 페이지를 제공 할 필요는 없습니다. 로컬 파일 시스템이면 충분합니다. HTH. –