title: ng-model converting dictionary to string
body: <p>I have a combobox whose options correspond to an array of dictionaries:</p>
  
  <pre><code>&lt;select class="form-control" id="role_list" ng-model="dialogdata.role" multiple&gt;
      &lt;option ng-repeat="role in roles" value="{{role}}"&gt;{{role.name}}&lt;/option&gt;
  &lt;/select&gt;   
  </code></pre>
  
  <p>And here is the array it uses to generate the list of combobox options:</p>
  
  <pre><code>$scope.roles = [ {
      'id': 1,
      'name': 'ROLE_USER'
  }, {
      'id': 2,
      'name': 'ROLE_ADMIN'
  }, {
      'id': 3,
      'name': 'ROLE_TPB_REPORT_USER'
  }, {
      'id': 4,
      'name': 'ROLE_TPB_REPORT_ADMIN'
  }];
  </code></pre>
  
  <p>It displays the options correctly in the combobox, and lets me select them, however when that data then gets processed inside a method I set a variable to the value of selected options:</p>
  
  <pre><code>var newtype = dialogdata.type;
  </code></pre>
  
  <p>For this test, I select the first two options, then submit it. When it gets into the method where the var is set, the dictionary entries have been converted into strings. In the console, if I set a breakpoint I can see var newtype getting set to this:</p>
  
  <pre><code>["{"id":1, "name":"ROLE_USER"}", "{"id":2, "name":"ROLE_ADMIN"}"]
  </code></pre>
  
  <p>I need the value to be an array of actual dictionaries not the string version of them, is this just a limitation of ng-model, or can I finagle this into working? Is there another, better option that will preserve the type?</p>