0

因此,当有人使用我的路由中未找到的 URL 访问我的站点时,我尝试做的是触发并加载视图。我这样做是为了让访问者可以通过访问 domain.com/username 查看用户个人资料

由于用户名是动态的,我无法定义路由,我将如何完成我需要的触发?

4

2 回答 2

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 });
于 2013-05-26T22:21:32.070 回答
0

您不能使用 Backbone 执行此操作,因为它的路由器仅在 URL 片段(哈希)上路由,而不是 URL 本身。使用 HTML5 History API 也不起作用,因为这是直接导航到 URL。

您唯一的选择是在服务器上进行路由并提供包含所有 Backbone 客户端逻辑的页面。

你可能会胡闹,window.location.pathname但这是次优的,可能会导致比平时更多的眼泪。

于 2013-05-26T22:27:56.233 回答