ビューのコレクションでプロパティをバインドする最良の方法を理解しようとしています。
ドキュメントによると、MVC アーキテクチャでは、モデル インスタンスに直接ではなく、「実際には、ビューのプロパティをコントローラー レイヤーにバインドする必要があります」。これは、1 つのオブジェクトだけを制御するコントローラーがある場合にはうまく機能しますが、コレクションを扱う場合にはうまく機能しないようです。
標準的なToDoの例では、ビューは
{{#collection contentBinding="Todos.todosController" tagName="ul"
itemClassBinding="content.isDone"}}
{{view Em.Checkbox titleBinding="content.title"
valueBinding="content.isDone"}}
{{/collection}}
これは基本的に、各モデルのプロパティに直接バインドされています。配列コントローラーが何らかの形でこれらのプロパティをプロキシしていることは理解していますが、モデル オブジェクトに直接存在するプロパティしか参照できません。
ToDo のアプリで、ビューにさらにいくつかの状態を表示したいとしましょう。たとえば、ビューを展開したり折りたたんだりできるようにしたいとします。エキスパンダー フレームとコンテンツを含む ToDo ビュー全体を表すビュー オブジェクトがある場合、そのビューのプロパティ 'isExpanded' を何かにバインドする必要があります。
オブジェクトが 1 つだけで、配列以外のコントローラーがある場合は、コントローラーに「isExpanded」プロパティを配置することがあります。次に、小さな三角形のアイコンを反転すると、コントローラーでこのプロパティを設定でき、ビューはこれに気づき、展開します。
しかし、アレイ コントローラでは、このプロパティを保持して個々の ToDo を参照させる明白な方法はありません。上記の標準的な例から、モデルのプロパティにバインドする必要があるようです。しかし、「isExpanded」のような一時的なビュー中心のプロパティを ToDo モデル自体に入れなければならないのはばかげているようです。
助言がありますか?