Mar*_*cus 37 javascript backbone.js
如果我在骨干路由器中启用pushState,是否需要在所有链路上使用return false或者骨干是否自动处理?那里有任何样本,包括html部分和脚本部分.
ggo*_*zad 67
这是Tim Branyen在他的样板中使用的模式:
initializeRouter: function () {
Backbone.history.start({ pushState: true });
$(document).on('click', 'a:not([data-bypass])', function (evt) {
var href = $(this).attr('href');
var protocol = this.protocol + '//';
if (href.slice(protocol.length) !== protocol) {
evt.preventDefault();
app.router.navigate(href, true);
}
});
}
Run Code Online (Sandbox Code Playgroud)
使用它,而不是单独对链接执行preventDefault,您可以让路由器默认处理它们,并通过拥有data-bypass
属性来实现异常.根据我的经验,它作为一种模式很有效.我不知道周围有什么好的例子,但是自己尝试一下不应该太难.Backbone的美丽在于它的简洁;)
$(document.body).on('click', 'a', function(e){
e.preventDefault();
Backbone.history.navigate(e.currentTarget.pathname, {trigger: true});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12095 次 |
最近记录: |