title: Creating a re-usable modal object/template system
body: <p>We're rewriting an application using Angular 1.2, and I'm trying to determine what the conventional method would be for creating a re-usable dialog.</p>
  
  <p>Our application has several "modal" windows which contain forms. They're opened from multiple places from within our application and are self-contained.</p>
  
  <p>An extremely simple example would be:</p>
  
  <pre><code>var userDialog = new app.Dialogs.EditUser({
    user_id: 1,
    save: function(){
      // callback stuff
    }
  });
  userDialog.show();
  </code></pre>
  
  <p>I'm unsure how best to handle this in Angular. At first I thought about making it a service, but this would have templates for the actual form, etc.</p>
  
  <p>I thought about using a route so I could immediately have a controller/template combo, but I need this content to open up on the current page, without any iframes.</p>
  
  <p>It seems too complex for a directive because it'll control it's own placement in the dom (as a modal, covering everything) and will have some API code letting us get/set some data/options, show/close it, etc.</p>
  
  <p>What's the correct Angular-way of building a re-usable item like this? </p>