Javascript 主干路由器:如何设置hrefs以连接到路由器?
我看到很多例子,只是一些路由器代码,就是这样。HTML中的我的href必须以“#”开头,这样页面就不会重定向,对吗? 假设我的a标签看起来是这样的:Javascript 主干路由器:如何设置hrefs以连接到路由器?,javascript,backbone.js,Javascript,Backbone.js,我看到很多例子,只是一些路由器代码,就是这样。HTML中的我的href必须以“#”开头,这样页面就不会重定向,对吗? 假设我的a标签看起来是这样的: <a href="/#login">Login</a> 上面的路由是否需要哈希或任何类型的反斜杠? 或者我的锚中的href应该是“/#/login” 另外,我也看到了这个代码 Backbone.history.start({ pushState: true }); 这意味着什么?它有什么作用? 我是在创建路由器的
<a href="/#login">Login</a>
上面的路由是否需要哈希或任何类型的反斜杠?
或者我的锚中的href应该是“/#/login”
另外,我也看到了这个代码
Backbone.history.start({
pushState: true
});
这意味着什么?它有什么作用?
我是在创建路由器的新实例之后还是之前使用此代码?我还有一个小问题要告诉你。 首先,像往常一样定义链接
<a href="/login">Login</a>
这段代码的作用是,只阻止所有href的重定向,并让主干路由器为您执行任务(无需刷新)
路径在
#
之后对零件作出反应,因此第一个示例是确定的。请注意,如果应用程序未在根目录中运行,则#
前面的斜杠可能错误。考虑离开路径(<代码>登录} /代码>),在所有情况下都应该是OK的。使用<代码> PurtSt:Trime,您不再需要在URL中使用“代码>< < /代码>”。
<a href="/login">Login</a>
$(document).on('click', 'a[href^="/"]', function(e) {
e.preventDefault();
var href = $(e.currentTarget).attr('href');
Backbone.history.navigate(href, { trigger: true });
});
var router = new App.Router();
Backbone.history.start({pushState: true}); // Start the Router