mrd*_*les 3 javascript backbone.js pushstate
我已经在骨干网中创建了一个网站,由于各种原因,我决定要删除网址中的哈希值.我改变了历史.开始了
Backbone.history.start();
Run Code Online (Sandbox Code Playgroud)
至
Backbone.history.start({pushState: true, root: '/'});
Run Code Online (Sandbox Code Playgroud)
但是一旦我这样做,路由就会停止正常工作.
我的路由看起来像这样:
var Router = Backbone.Router.extend({
routes: {
"": "home",
"home": "home",
"artists": "artists",
}
});
var router = new Router;
router.on('route:home', function() {
console.log("home");
// Code
});
router.on('route:artists', function() {
console.log("artists");
// Code
});
//Backbone.history.start();
Backbone.history.start({
pushState: true,
root: '/'
});
Run Code Online (Sandbox Code Playgroud)
如果我运行它没有pushState它工作正常,如果我用pushState运行它没有到达该console.log("artists");部分,我不明白为什么,有人可以向我解释我做错了什么?
您需要阻止a元素进行其常规操作并让骨干路由器对其进行路由.
我将使用jQuery编写示例来概述应该发生的事情:
$(document).on("click", "a", function(e)
{
e.preventDefault(); // This is important
var href = $(e.currentTarget).attr('href');
router.navigate(href, true); // <- this part will pass the path to your router
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6167 次 |
| 最近记录: |