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