绑定选择过滤后的模型

时间:2016-04-01 16:57:30

标签: angularjs angularjs-directive angularjs-ng-repeat angularjs-filter angularjs-bindings

请原谅标题。我无法弄清楚如何最好地描述我正在寻找的东西。

我的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 }
    ]
  }
]

我有一个指令遍历此对象的父级并绑定到里面的数据,没问题。但是,我遇到的问题是我需要通过ColumnName将select的ng-options绑定到过滤的对象。

在我的ng-repeat中,我正在为每列渲染一个包含CalculationTypes的选择。我需要将ng-options设置为每个CalculationTypes,其中AvailableSummaryColumns.ColumnName等于ng-repeat中当前AvailableColumns对象的ColumnName。

我已经尝试过我所知道的所有尝试,但是不能正确地约束它。实现这一目标的最佳方法是什么?

NG-重复:

<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。

1 个答案:

答案 0 :(得分:1)

试试这个:

<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>