0

有没有办法为木偶区域指定模板?现在我正在使用布局对象来指定模板。

 AppLayout = Backbone.Marionette.Layout.extend({

     template: tmpl

    });

    var layout = new AppLayout();
    App.main.show(layout);

    App.addRegions({
        userInfo: "#userInfo",
        mainMenu: "#mainMenu",
        content: "#content"
    });

    App.mainMenu.show(new mainMenuView.Views.menu());
    App.content.show(new dashboard.Views.main());    

为什么当我在布局对象中定义它们时,我无法直接从我的应用对象访问我的区域?

 AppLayout = Backbone.Marionette.Layout.extend({

     template: tmpl
     regions: {
         userInfo: "#userInfo",
        mainMenu: "#mainMenu",
        content: "#content"
      }
    });

    var layout = new AppLayout();
    App.main.show(layout);

    does not work:
    App.mainMenu.show(new mainMenuView.Views.menu());
    App.content.show(new dashboard.Views.main());    

谢谢

4

2 回答 2

3

有没有办法为木偶区域指定模板?

这正是一个布局——一个在渲染输出中带有区域的渲染模板。

为什么当我在布局对象中定义它们时,我无法直接从我的应用对象访问我的区域?

布局中的区域范围为布局的el,与事件相同。即使您将一个区域定义为“#id”选择器,它仍然会限定在布局范围内,并且不会在布局的el.

此外,在布局上定义区域会将区域添加到布局,而不是应用程序对象。如果要在应用程序对象上定义区域,则必须直接将它们添加到应用程序对象。

于 2012-07-16T13:46:02.680 回答
2

要访问放置在区域中的布局区域,您可以编写:

App.main.currentView.mainMenu.show(someView)
App.main.currentView.content.show(anotherView)
于 2012-07-16T11:49:24.767 回答