我正在尝试使用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 :(得分:0)
我没有使用过Director但你的问题可能是GitHub使用mime类型的“text / plain”提供“原始”文件。因此Director js代码可能不会被处理为javascript,导致您的测试页无法工作。尝试下载自己的Director副本并链接到本地版本,而不是GitHub上的版本。