我现在已经尝试了整整两天。我经历了十字路口,路径,戴维斯和其他10000个图书馆,所有这些都需要大量的依赖或者非常具有侵入性。我只需要一个简单的PURELY HTML5路由器,它不是200kb。我不关心IE6或IE8。
我最近的尝试是集成到主干中的那个。
var Router = Backbone.Router.extend ({
initialize: function()
{
console.log(this);
},
routes: {
'/' : 'home',
'': 'home',
'work': 'home',
'/work': 'home'
},
home: function () {
alert('Backbone sux');
}
});
var appRouter = new Router();
Backbone.history.start({pushState: true});
这不应该削减吗?我不应该简单地写
<a href = "/work"></a> <a href ="/"></a>
看到我美丽的警示信息?
答案 0 :(得分:0)
正如cclerville所提到的,Backbone不会像你想要的那样自动匹配网址。你必须添加一些脚本来实现这一点。我使用以下内容。
// All navigation that is relative should be passed through the navigate
// method, to be processed by the router. If the link has a `data-bypass`
// attribute, bypass the delegation completely.
//
// @link https://github.com/tbranyen/backbone-boilerplate/blob/master/app/main.js
$(document).on('click', 'a[href]:not([data-bypass])', function(event) {
var href = $(this).prop('href'),
root = location.protocol + '//' + location.host + module.config().rootUrl + '/';
if (href.slice(0, root.length) === root) {
event.preventDefault();
Backbone.history.navigate(href.slice(root.length), true);
}
});