骨干路由和视图清理

时间:2014-04-07 09:47:16

标签: backbone.js

我有几个视图作为与路径对应的主视图模块(RequireJS)。我打算使用这些主视图模块作为入口/控制器,初始化更多的子视图。在初始化新视图之前,每个路径都要求将页面上活动的大多数视图与子视图一起删除。我虽然失去了如何实现这一点。我应该跟踪加载的视图并在AppRouter或主视图模块中进行清理吗?

我的路线

var AppRouter = Backbone.Router.extend({
  routes: {
    'pagex/new': 'newPost',
    'pagey/:id:  'foo'
  },

  newPost: function() {
    // remove and cleanup current active views here (I don't know how)
    // render newPost view
  },

  // ...

});

整个申请的主要观点:

var appView = Backbone.View.extend({
  var router = new Router();
  Backbone.history.start({ pushState: true });

  $(document).on('click', 'a:not([data-bypass])', function (evt) {
    var href = $(this).attr('href');
    var protocol = this.protocol + '//';
    if (href.slice(protocol.length) !== protocol) {
        evt.preventDefault();
        router.navigate(href, true);
    }
  });

});

1 个答案:

答案 0 :(得分:1)

节省一些时间,并使用Marionette。然后,您将定义您的区域,您将在其中显示您的观看次数。 Marionette将为您处理意见的结束(并且还有许多其他好东西,所以没有理由不使用它)。