私は自分自身をバックボーンハッカーと呼んでいます。私はフレームワークが何をすることができるのか、その限界がどこにあるのかを知っています。私はまた、いくつかのテンプレートフレームワークでいくつかの経験を持っています。なぜ誰もがrenderメソッドを使用して親子ビューを構築していますか?
多くのチュートリアルでは、複雑なネストされたビューの作成方法を説明していますが、そのほとんどはテンプレートを使用して部分的に作成してから、親ビューのrenderメソッド内でテンプレート化された子を結合します表示
私にとって、これはなぜ宣言的なコードでレイアウトレンダリングに対処すべきか理解できません。フレックスから来て、私はそれを決してしないように教えられました。私はいつも、レイアウト記述と変数バインディングをマークアップに残し、イベント処理はこのマークアップを使用する宣言(Viewインスタンス)コードに任せました。
私がテストしたテンプレートフレームワークはありませんが、ネストされたビューで複雑なマークアップを作成することはできません。テンプレートから実際にテンプレートを呼び出すことはできず、したがってViewオブジェクトをインスタンス化することはできません。これは技術的に可能ですが、特にデータ属性を使用して、型名を指定することができます。
次に、ルートレベルのViewクラスのすべてのレンダリングメソッドは、このテンプレートをHTMLマークアップに変換し、子オブジェクトのタイプを調べ、そのいずれかの子ビューインスタンスを作成し、それらの子オブジェクトが子オブジェクトを持つべきである場合には、さらにそれを保つ。すべてのビューにモデルコンテキストが与えられます。基本的には、私たちが常に処理する標準的な手順ですが、Backbone.Viewレベルで自動化されています。
誰もがこれについて考えていますか?なぜ誰もこれを使用していないようですか?
[トリビリティはネストされたビューで複雑なマークアップを行う](https://github.com/Raynos/trinity)。また、トリニティビューを簡単に処理して、すべてのネストされたビューのBackbone Viewオブジェクトを作成することもできます。あなたのコンセプトの問題は、強力な継承を可能にするまともなテンプレートシステムが必要なことです。それらはまれです。 – Raynos
私はこれが他の所に所属していると感じていますが、解決できるコードで定義された問題ではなく、親子ビューのベストプラクティスに関するディスカッションです... Q&Aよりも議論の方が多いようですトピック。おそらくコミュニティウィキのための何か? – Sander
私はあなたの特定の問題についてはわかりませんが、JavaのAWTライブラリは、あなたが否定的な表現をしているように振る舞います。レイアウトマネージャは、要素のコントロールリストを配置します。子はコントロール/コンテナツリーを構築するために再帰的にレンダリングされます。 BackboneでHandlebars.jsを使用して再帰的レンダリングビューを構築したので、カスタムテンプレート操作が常に必要と思われるテンプレートをハックしようとするよりも、より洗練されたコードベースのソリューションが好きです。 – Max