Backbone.js单击事件处理程序:使用参数触发路由

时间:2014-04-17 23:16:24

标签: javascript backbone.js backbone-events backbone-routing

我想在点击按钮时将用户重定向到另一个页面。这是代码:

模板:

<button type="button" id="edit-button">Edit</button>

路由器:

App.Router.Accounts = Backbone.Router.extend({
    routes: {
        'accounts/:accountID/audience/edit' : 'editAudience'
    }
});

视图:

router: new App.Router.Accounts(),

events: {
    "click #edit-button": "redirectToEdit"
},

redirectToEdit: function(){
    url = "accounts/"+this.account_id+'/audience/edit';
    this.router.navigate(url, {
        trigger: true,
        replace: true
    });
}

但我收到错误:

Uncaught TypeError: Cannot use 'in' operator to search for 'model' in foo123

其中foo123是帐户ID。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您想更改网址,可以使用Router.navigate方法:

App.Router.navigate(url, {
    // trigger: true/false,
    // replace: true/false
});

请注意,您在字符串连接中缺少/