Backbone.js:嵌套视图的路由

Fdr*_*Fdr 6 javascript backbone.js backbone-views

我想弄清楚以下情况:

让我们说我有两个观点:一个用于查看项目,另一个用于购买它们.问题在于购买视图是用于查看的子视图.

对于路由,我有:

var MyRouter = Backbone.Router.extend({
  routes: {
    'item/:id': 'viewRoute',
    'item/:id/buy': 'buyRoute'
  }
});

var router = new MyRouter;

router.on("route:viewRoute", function() {
  // initialize main view
  App.mainview = new ViewItemView();

});

router.on("route:buyRoute", function() {
  // initialize sub view
  App.subview = new BuyItemView();
});
Run Code Online (Sandbox Code Playgroud)

现在,如果用户刷新页面buyRoute并被触发,但现在没有主视图.处理这个问题的最佳解决方案是什么?

Inf*_*ity 1

我认为您现在遇到的问题是您不想在 BuyView 中显示 ViewItem 中的一些内容?如果是这样,那么您应该将 BuyView 和 ViewItem 的共同点模块化到另一个视图中,然后在这两条路线上对其进行初始化。

这是我的一个应用程序的代码示例

https://github.com/QuynhNguyen/Team-Collaboration/blob/master/app/scripts/routes/app-router.coffee

正如您所看到的,我对侧边栏进行了模块化,因为它可以在许多视图之间共享。我这样做是为了它可以重用并且不会引起任何冲突。