1

我正在尝试处理路由器文件中的所有页面路由/转换,然后从其他函数中引用视图文件中的这些函数。我尝试了几种方法,但无法从视图中访问任何路由器功能。我得到的错误是 AppRouter 未定义。

**Code snippet from router.js:**

...
var AppRouter = Backbone.Router.extend({

routes: {
  '': 'showDefault',
  'index': 'showDefault',
  'cart': 'showCart',
  '*actions': 'defaultAction'
 },

showCart: function(actions) {
  console.log('show cart called');
  this.changePage(cartView);
},
changePage: function(page) {
  $('body').append($(page.el));
  $.mobile.changePage($(page.el), { changeHash: true, transition: 'slide' });
}
...

**Code snippet from default page view js**
...
events: {
  'click #showCart': 'cartPage',
},
cartPage: function(action) {
  $.AppRouter.showCart;
},
...
4

1 回答 1

2

初始化路由器时,您必须执行以下操作:

new AppRouter();

您需要找到那段代码并重写为您可以全局访问的内容:

window.appRouter = new AppRouter();

然后,您可以像这样访问您的路由器:

appRouter.showCart();  # instead of $.AppRouter.showCart
于 2012-08-03T00:07:00.277 回答