Backbone Marionette,渲染区域,如果尚未渲染

时间:2012-08-27 11:39:50

标签: backbone.js marionette

所以我只想在没有渲染的情况下渲染一个侧面菜单项目。这是无关紧要的,我不会强制进行不必要的重新渲染。

如果没有在区域中渲染,我已经找到了渲染视图的解决方案。

在路由器调用的控制器对象中进行以下示例:

Admin.showIndex= function(){
    if (!MyApp.layout.sidepanel.currentView || !(MyApp.layout.sidepanel.currentView instanceof AdminSidePanel)){
        MyApp.layout.sidepanel.show(new AdminSidePanel());
    }else{
        alert("Already rendered sidepanel!");
    }
    // More stuff!
}

这是一个很好的方法吗?它的工作原理如下:

  • 如果我F5刷新页面/ #admin,则会生成侧面板。
  • 如果我进入例如/ #admin/ubmenu并返回#admin,则不会再次渲染侧面板。

1 个答案:

答案 0 :(得分:2)

对我来说很好看。我在我的项目中使用了类似的逻辑。

我更喜欢这种方法而不是在MyApp中明确维护全局状态变量。