Angularjs 双循环以获得Ng选项

Angularjs 双循环以获得Ng选项,angularjs,angularjs-ng-repeat,ng-options,Angularjs,Angularjs Ng Repeat,Ng Options,我想将所有任务的名称作为任务id,其中任务数组存储在组数组中。 我正试图在angularJS的ng选项指令中得到它。这里是快速编辑的链接。 提前谢谢!我知道在单个数组中,它是任务中任务的task.Id.Name,但我的任务嵌套在组中,所以我需要所有组中的任务 $scope.Groups = [{ Name: 'a1', Id: 1, Tasks:[{Name: 'Some Name' Id: 1},{Name: 'Some Name 2' Id: 2

我想将所有任务的名称作为任务id,其中任务数组存储在组数组中。 我正试图在angularJS的ng选项指令中得到它。这里是快速编辑的链接。 提前谢谢!我知道在单个数组中,它是任务中任务的
task.Id.Name,但我的任务嵌套在组中,所以我需要所有组中的任务

$scope.Groups = [{
        Name: 'a1',
        Id: 1,
       Tasks:[{Name: 'Some Name' Id: 1},{Name: 'Some Name 2' Id: 2}]
    }, {
        Name: 'c2',
        Id: 2,
        Tasks:[{Name: 'Some Name 3' Id: 3},{Name: 'Some Name 4' Id: 4}]
    },
       {
        Name: 'c2',
        Id: 3,
        Tasks:[{Name: 'Some Name 3' Id: 5},{Name: 'Some Name 4' Id: 6}]
    }];

您可以使用以下功能展平数据结构:

function flattenArray(array, fn)  {
   var output = [];
   for(var i = 0; i < array.length; ++i) {
      var result = fn(array[i]);
      if (result) 
         output = output.concat(result);
   }
   return output;
}

我认为这种模型结构不可能实现。您可能需要将您的模型扁平化为任务列表。+1 runTarm它不起作用,如果结构不经常更改,您可以将任务提取到单独的数组中,如果您不必使用ng选项,您可以尝试使用ng repeat来实现它谢谢您的回答:)
$scope.Groups = flattenArray(groups, function(item) { 
     return item.Tasks;
});