Backbone.js中调用的重复路由

时间:2011-11-26 18:19:17

标签: javascript backbone.js

我希望有一种RESTful URL结构,如下所示:

  • /帐户
  • /帐户/帐户/ 123

我已经设置了我的路线:


    MyRouter = Backbone.Router.extend({

        routes : {
            '/accounts':                         'accounts',
            '/accounts/account/:account':        'account',
        },
        accounts: function() {
            console.log('accounts CALLED');
        },
        account: function() { 
            console.log('account CALLED');
        },
    });

问题是,当我去 / accounts / account / 123 时, 帐户() 并且 account() 被调用(因为URL匹配两个路由)。我尝试了一种路由,例如 / accounts $ ,但它看起来不像路由哈希所支持。

有没有办法实现这个目标?手动 router.route(路由,名称,回调) 会改为工作吗(虽然我真的不愿意这样做)。

2 个答案:

答案 0 :(得分:1)

我通过another SO question清除了这个问题。我没有意识到我必须严格使用 router.navigate 功能。

以编程方式(不通过浏览器栏)使用路由器,这些重复的呼叫消失了。我还看到只使用一次的预期功能......当使用 router.navigate 时。

我仍然需要了解如何捕获&转发按钮来调用这些功能。感谢您的反馈到目前为止。

答案 1 :(得分:0)

尝试使用/ accounts $。 $是字符串结尾的正则表达式。