バックボーンを使用したことは初めてのことであり、非常に単純なアプリケーションです。基本的にClients
とClientItems
があります。私はすべてのクライアントを表示するビューを持っています。クライアントをクリックすると、ClientItemsに移動します。このClientItemsビューに移動すると、クライアントビューが非表示になり、クライアントはClientItemsを非表示にする必要があります。さて、各ビューの私のrender()
機能では、コレクションを通過し、動的にページに追加します。私が2つの間を行き来するとき(戻るボタンを使用して)、すべてのデータがページにあり、隠されているので、完全に再レンダリングする必要はありません。この論理はどこに行くべきですか?今、私はrender()
の機能の中にそれを持っていますが、それはちょっと感じます、これを処理するのに好ましい方法は何ですか?レンダリングビューのベストプラクティスを表示/非表示にするバックボーン
7
A
答えて
11
私たちは、アプリケーション全体で使用されるいくつかの一般的な機能を持つグローバル変数App
を使用している:
var App = {
initialize : function() {
App.views = {
clientView : new ClientsView(),
clientItemView : new ClientsItemsView()
}
},
showView: function(view){
if(App.views.current != undefined){
$(App.views.current.el).hide();
}
App.views.current = view;
$(App.views.current.el).show();
},
...
}
そして私は、アプリケーションの他の部分からこのApp
を使用します。
App.showView(App.views.clientView);
5
IntoTheVoidのソリューションは良いです - ビューを表示/非表示する場所が1つあることはうれしいことです。しかし、どのようにロジックをアクティブにしますか?
私の経験では、ルータはこれに最適な場所です。ルートが変更され、適切な関数が呼び出されると、アクティブな表示可能なビューを更新する必要があります。
一度に複数のビューを表示する必要がある場合はどうすればよいですか?ルートが変更されたときに常に変更されるプライマリビューと、複数の補助的なスティッキビューがある場合は、心配する必要はありません。しかし、それよりも複雑な場合は、すべての関連ビューをel
ノードを含むビューにきちんとまとめるComboViewを作成することを考えてください。そのようにしても、上記のロジックはまだ機能し、ルーターの機能には現時点でどのビューが表示されているかを管理するロジックが組み込まれていません。
関連する問題
- 1. WPF設定ページ。コントロールの非表示/表示。ベストプラクティスWPFで
- 2. バックボーンjsフィルタ表示
- 3. クラスを表示/非表示にする
- 4. JavaScriptを表示/非表示にする
- 5. ダイナミックコンボボックスを表示/非表示
- 6. DataTemplateを非表示/表示
- 7. NSToolbarItemの非表示/表示
- 8. の表示/非表示ベース
- 9. 表示/非表示のコンテンツ
- 10. の表示/非表示DIV
- 11. jqueryの表示/非表示
- 12. メインウィンドウのクロムエクステンションを非表示/非表示にする方法
- 13. Eclipseのメニューバーを非表示にする(自動非表示)
- 14. Jquery非表示の非表示
- 15. タブバーの非表示と非表示
- 16. Jquery表示/非表示にする前に要素を右にシフト表示/非表示
- 17. C#でプロセスを非表示/非表示にする方法は?
- 18. Jquery表示/非表示トグル
- 19. 非表示と表示RadComboBox
- 20. JavaScript/PHP [表示/非表示]
- 21. ユーザーコントロール非表示と表示
- 22. UITabBarItem表示/非表示
- 23. 表示/非表示サイトマップメニュー/リピータ
- 24. スクロールアンカー表示/非表示
- 25. QTransform表示/非表示
- 26. GWT - 表示/非表示
- 27. アニメーションのUIButtonが非表示になり、非表示になる
- 28. 非表示で表示/非表示どこでもクリック
- 29. div内のswfを非表示にする/表示する
- 30. jQueryが表示/非表示を使用する理由:表示:非表示の代わりにnone:非表示ですか?
いいね。私はあなたが 'initialize'でバットからすぐにビューを作成するのを見ます。これは一般的なことですか?コレクションでも同じことをしますか?私は今のところどちらかの一つのインスタンスが必要になるだけだから私には意味があるが、まだ学んでいる。 – Brandon
私たちはすぐにビューを作成しているだけで、他のすべてのものは必要なときに作成されます。もちろん、最初に必要なときはrequire.jsとinitビューを追加することができます。 –
App.views.current.show()を使用して、表示に関する追加ロジックがそこで実行できるようにします(変更される他のイベントリスナーが存在する可能性があります) –