在筛选模型上绑定 select

Binding select on filtered model

标题请见谅。我不知道如何最好地描述我正在寻找的东西。

我的 JSON 看起来像这样:

AvailableColumns: [
  { ColumnName: "CustomerNumber", ... },
  { ColumnName: "CustomerFirstName", ... }
],
AvailableSummaryColumns: [
  {
    ColumnName: "CustomerNumber",
    CalculationTypes: [
      { label: "Count", id: 1 },
      { label: "Count Distinct", id: 2 }
    ]
  },
  {
    ColumnName: "CustomerFirstName",
    CalculationTypes: [
      { label: "Count", id: 1 },
      { label: "Count Distinct", id: 2 }
    ]
  }
]

我有一个指令遍历这个 object 的 parent 并绑定到里面的数据,没问题。不过,我遇到的问题是我需要将 select 的 ng-options 绑定到按 ColumnName.

过滤的 object

在我的 ng-repeat 中,我正在呈现一个 select 容纳每列的 CalculationTypes。我需要将 ng-options 设置为每个 CalculationTypes,其中 AvailableSummaryColumns.ColumnName 等于 ng-repeat.

中当前可用列 object 的 ColumnName

我已经尝试了所有我知道的尝试,但就是无法正确绑定。实现此目标的最佳方法是什么?


ng-repeat:

<tr ng-repeat="column in AvailableColumns track by $index | orderBy: 'ColumnOrder'" data-column-name="{{column.ColumnName}}" data-ref="{{$index}}">

在每一行中,我需要将 select 的 ng-model 或 ng-options 绑定到 AvailableSummaryColumns.CalculationTypes,其中 AvailableSummaryColumns.ColumnName 等于 AvailableColumns.ColumnName.

试试这个:

<tr ng-repeat="column in AvailableColumns track by $index | orderBy: 'ColumnOrder'" data-column-name="{{column.ColumnName}}" data-ref="{{$index}}">
   <td><div ng-repeat="sumary in AvailableSummaryColumns track by $index">
         <div ng-if="sumary.ColumnName === column.ColumnName">
            <select ng-options="type.label for type in AvailableSummaryColumns. CalculationTypes"></select>
         </div>
       </div>
   </td>

</tr>