title: Backbone Design
body: <p>I'm just getting started with Backbone. I went through the first two PeepCode screencasts which were great and now I'm digging in on a quick detached (no server side) mock-up of a future app.</p>
  
  <p>Here's what I'm looking to build (roughly). A series of five text boxes - lets call these Widgets. Each Widget input, when selected, will display a pane that shows Tasks associated with the Widget and allow the user to create a new Task or destroy existing Tasks.</p>
  
  <p>At this point, I'm thinking I have the following models:</p>
  
  <pre><code>Widget
  Task
  </code></pre>
  
  <p>The following collections:</p>
  
  <pre><code>Tasks
  Widgets
  </code></pre>
  
  <p>The following views (this is where it gets hairy!)</p>
  
  <pre><code>WidgetListView
    - Presents a collection of Widgets
  WidgetView 
    - sub-view of WidgetListView to render a specific Widget
  TaskPaneView 
    - Presented when the user selects a Widget input
  TaskCreateView 
    - Ability to create a new Task associated with selected Widget
  TaskListView 
    - Presents a collection of Tasks for the given widget
  TaskView 
    - Displays Task detail - sub-view of TaskListView
  </code></pre>
  
  <p>Assuming that's reasonable, the trick becomes how to display a TaskPaneView when a WidgetView is selected. And futhermore, how that TaskPaneView should in turn render TaskCreateViews and TaskListViews. </p>
  
  <p>The real question here is: Does one cascade render events across Views? Is it permissible for a Root view to know of sub-views and render them explicitly? Should this be event-driven?</p>
  
  <p>Apologies if this is an open-ended question, just hoping someone will have seen something similar before and be able to point me in the right direction.</p>
  
  <p>Thanks!</p>