1

ルーターファイル内のすべてのページルーティング/遷移を処理してから、ビューファイル内の他の関数からそれらの関数を参照しようとしています。いくつかの方法を試しましたが、ビューからルーター機能にアクセスできません。エラーImgetingis AppRouterisundefined。

**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 に答える