如何在 Backbone.history.start 上忽略 URL 中的散列
How to ignore hash in URL on Backbone.history.start
我有一个 URL 和我的网站一样。com/en/bla-bla/bla/page#someid
如果在散列 URL.
中找到 someid,浏览器应该滚动 window 到某个页面位置
此外,我在页面上有 backbone,如果用户打开带有 URL 中某些哈希值的页面 backbone 失败 如果没有定义的路由匹配当前URL。 Backbone 无法匹配 #someid 作为路径。
var result = Backbone.history.start();
if (!result) {
console.log("If no defined route matches the current URL");
}
如何解决?
你可以添加一个捕获所有route:
splat parts *splat
, which can match any number of URL components.
var Router = Backbone.Router.extend({
routes: {
'*catchall': 'homeRoute',
// any route defined further down takes precedence on the ones before.
'real-route/:id': 'realRoute',
},
homeRoute: function() { /*...*/ },
realRoute: function(id) { /*...*/ }
});
定义您希望 Backbone 处理的任何路由,然后让 splat 捕获任何未定义的路由。
我有一个 URL 和我的网站一样。com/en/bla-bla/bla/page#someid 如果在散列 URL.
中找到 someid,浏览器应该滚动 window 到某个页面位置此外,我在页面上有 backbone,如果用户打开带有 URL 中某些哈希值的页面 backbone 失败 如果没有定义的路由匹配当前URL。 Backbone 无法匹配 #someid 作为路径。
var result = Backbone.history.start();
if (!result) {
console.log("If no defined route matches the current URL");
}
如何解决?
你可以添加一个捕获所有route:
splat parts
*splat
, which can match any number of URL components.
var Router = Backbone.Router.extend({
routes: {
'*catchall': 'homeRoute',
// any route defined further down takes precedence on the ones before.
'real-route/:id': 'realRoute',
},
homeRoute: function() { /*...*/ },
realRoute: function(id) { /*...*/ }
});
定义您希望 Backbone 处理的任何路由,然后让 splat 捕获任何未定义的路由。