我正在尝试使用'track by'表达式来跟踪对象数组中id的选择.但是,我似乎无法让它像我认为的那样有效.
//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"}];
<!-- select box -->
<select ng-model="serverDTO" ng-options="item as item.name for item in composedData track by item.id"></select>
Run Code Online (Sandbox Code Playgroud)
因此,基于文档,我认为加载的选项指令会看到serverDTO具有1,2和3的'track by'id,并且具有预先选择的那些.用户修改选择后,我需要做这样的事情,将数组返回给服务器 -
//recreate proper DTO [1,2,3];
$scope.serverDTO = $scope.serverDTO.map(function(val){
return val.id;
});
Run Code Online (Sandbox Code Playgroud)
我是否应该如何工作呢?