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>
正如@ Matt27所建議的,務必將演示html頁面保存在一個新文件中並從您的文件系統運行。這就是我今天所做的,並且一切都按預期工作。您不需要從Web服務器實際提供演示頁面;本地文件系統就足夠了。 HTH。 –