如何在Backbone.history.start中忽略URL中的哈希值

时间:2016-11-24 15:25:34

标签: javascript backbone.js

我有一个像mysite.com/en/bla-bla/bla/page#someid这样的网址 如果在哈希URL中找到someid,浏览器应该将窗口滚动到某个页面位置。

此外,我在页面上有主干,如果用户打开页面,在URL骨干网中有一些哈希值,则如果没有定义的路由与当前URL匹配。 Backbone无法将#someid与路径匹配。

var result = Backbone.history.start();
        if (!result) {
            console.log("If no defined route matches the current URL");
        }

如何解决?

1 个答案:

答案 0 :(得分:2)

您可以添加全部route

  

splat parts *splat,可以匹配任意数量的网址组件。

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捕获任何未定义的路由。