1

したがって、まだレンダリングされていない場合にのみ、サイドメニューのアイテムビューをレンダリングしたいと思います。これは非常に重要ではないため、重要でない再レンダリングを強制しません。

領域でまだレンダリングされていない場合、ビューをレンダリングする解決策を考え出しました。

ルーターによって呼び出されるコントローラー オブジェクトの次の例を見てください。

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!
}

これは良い方法ですか?それはこのように動作します:

  • ページ /#admin を F5 で更新すると、サイドパネルがレンダリングされます。
  • たとえば /#admin/submenu に移動して #admin に戻ると、サイドパネルが再びレンダリングされません。
4

1 に答える 1

2

は、私にはよく見えますよ。私は自分のプロジェクトで同様のロジックを使用しました。

でグローバル状態変数を明示的に維持するよりも、このアプローチの方が好きですMyApp

于 2012-08-27T23:19:09.570 に答える