バックボーンを使用したことは初めてのことであり、非常に単純なアプリケーションです。基本的に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. GIFの表示と非表示のベストプラクティス
- 2. 条件を表示/非表示のフィールドを表示/非表示にする
- 3. バックボーンjsフィルタ表示
- 4. WPF設定ページ。コントロールの非表示/表示。ベストプラクティスWPFで
- 5. クラスを表示/非表示にする
- 6. JavaScriptを表示/非表示にする
- 7. 秘密のフォルダを非表示にするrobots.txtのベストプラクティス
- 8. Javafxタブペインのタブを非表示/非表示にするには
- 9. anglejs内の表示/非表示セクションをすべて表示/非表示
- 10. 非表示のオプションを非表示IE
- 11. ブートストラップデータテーブルの列を非表示/非表示にする方法は?
- 12. Eclipseのメニューバーを非表示にする(自動非表示)
- 13. メインウィンドウのクロムエクステンションを非表示/非表示にする方法
- 14. 非表示のシートを非表示にする
- 15. 親のonclickイベントで非表示divを表示/非表示
- 16. リストビューを表示/非表示
- 17. Select2を非表示/表示
- 18. DataTemplateを非表示/表示
- 19. スウィフトナビゲーションコントローラ - 表示を非表示
- 20. 行を表示/非表示
- 21. ダイナミックコンボボックスを表示/非表示
- 22. の表示/非表示ベース
- 23. の表示/非表示DIV
- 24. ブートストラップモデルの表示/非表示
- 25. コンテンツの表示/非表示
- 26. ハイチャートコンテンツの表示/非表示
- 27. 表示/非表示のコンテンツ
- 28. NSToolbarItemの非表示/表示
- 29. jqueryの表示/非表示
- 30. ダイブオンクリックボタンの表示/非表示
いいね。私はあなたが 'initialize'でバットからすぐにビューを作成するのを見ます。これは一般的なことですか?コレクションでも同じことをしますか?私は今のところどちらかの一つのインスタンスが必要になるだけだから私には意味があるが、まだ学んでいる。 – Brandon
私たちはすぐにビューを作成しているだけで、他のすべてのものは必要なときに作成されます。もちろん、最初に必要なときはrequire.jsとinitビューを追加することができます。 –
App.views.current.show()を使用して、表示に関する追加ロジックがそこで実行できるようにします(変更される他のイベントリスナーが存在する可能性があります) –