title: ngOptions "track by" expression
body: <p>I am trying to use the 'track by' expression to track selections by id, in an array of objects. However, I can't seem to make it work like I think it works.</p>
  
  <pre><code>//ids from server
  $scope.serverDTO = ['1','2','3'];
  
  //composed objects from the ID set
  $scope.composedData = [{id:1,name:"test"},{id:2,name:"test"},{id:3,name:"test"}];
  
  &lt;!-- select box --&gt;
  &lt;select ng-model="serverDTO" ng-options="item as item.name for item in composedData track by item.id"&gt;&lt;/select&gt;
  </code></pre>
  
  <p>So based on the <a href="https://docs.angularjs.org/api/ng/directive/select" rel="noreferrer">documentation</a> I though that the options directive on load would see that the serverDTO has the 'track by' ids of 1, 2, and 3, and have those pre-selected. After the user modifies the selection I would need to do something like this to return the array to the server-</p>
  
  <pre><code>//recreate proper DTO [1,2,3];
  $scope.serverDTO = $scope.serverDTO.map(function(val){
    return val.id;
  });
  </code></pre>
  
  <p>Am I way off on how this is supposed to work?</p>