Я пытаюсь использовать director.js для маршрутизации на моем одностраничном приложении. Проблема заключается в том, когда вы переходите на страницу, введя ее в адресную строку, приложение не выполняет функцию, на которую указывает хеш в таблице маршрутизации.Выполните функцию, основанную на хеше с директором.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 в новом файле и запустите ее из своей файловой системы. Это то, что я сделал сегодня, и все это работало, как ожидалось. Вам не нужно фактически показывать демо-страницу с веб-сервера; локальной файловой системы достаточно. НТН. –