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。 –