所以我尝试做的是当有人使用我的路由中找不到的URL访问我的网站时触发并加载视图。我这样做是为了让访问者可以通过访问domain.com/username
来查看用户个人资料由于用户名是动态的,我无法定义路由,如何完成我需要的触发?
答案 0 :(得分:1)
您可以在路由器中处理:
var myRouter = Backbone.Router.extend({
routes: {
'/:username': findUsername,
'*path': notFound
}
findUsername: function(usernme) {
//Find username
//Username param comes from URL
},
notFound: function() {
//Handle not found page
}
});
需要注意的是,当您的应用加载时,您需要使用{ pushState: true }
new myRouter();
Backbone.history.start({ pushState: true });
答案 1 :(得分:0)
你不能用Backbone这样做,因为它的路由器只在URL片段(哈希)上路由,而不是URL本身。使用HTML5历史记录API无法正常工作,因为这是对URL的直接导航。
这里唯一的选择是在服务器上进行路由,并提供包含所有Backbone客户端逻辑的页面。
你可能会对window.location.pathname
进行攻击,但这不是最理想的,可能会导致比平常更多的眼泪。