哈希和骨干路由器

时间:2012-06-29 13:03:02

标签: backbone.js backbone-routing

我应该如何使用路由器?

var itemView = Marionette.ItemView.extend({

     events: {
         'click #loadPage': 'loadPage'
     },

     loadPage: function () {
         document.location.hash = '#tasks/' + this.model.get('id');
     }

});

2 个答案:

答案 0 :(得分:3)

根据documentation,router.navigate只是代理Backbone.history,它是全局的,所以你应该可以毫无问题地使用它:

Backbone.history.navigate("#tasks/", { trigger: true })

预期的{trigger: true}选项将触发哈希更改,以便路由器能够在注册该路由时作出反应。

答案 1 :(得分:0)

您必须具有路由器实例的“全局”变量。

然后以这种方式调用该变量:

// yourRouter was defined in your main controller like this: 
// var YourRouterClass = Backbone.Router.extend({ 
// stuff of your own Router
// });
// var yourRouter = new YourRouterClass(); <- this is your global router instance
yourRouter.navigate('tasks/'+this.model.get('id'), {trigger : true});