我正在尝试处理路由器文件中的所有页面路由/转换,然后从其他函数引用视图文件中的那些函数。我尝试了一些方法,但无法从视图中访问任何路由器功能。我得到的错误是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;
},
...
答案 0 :(得分:2)
初始化路由器时,您必须执行以下操作:
new AppRouter();
您需要找到一些代码并重写为可以全局访问的内容:
window.appRouter = new AppRouter();
然后您可以像这样访问您的路由器:
appRouter.showCart(); # instead of $.AppRouter.showCart