可以按行定义UI网格编辑吗?

时间:2015-11-05 01:36:53

标签: angularjs angular-ui-grid

使用UI网格编辑功能时,可以在columnDefs中指定单元格编辑参数。但这限制了一个在给定列的所有行中具有相同类型。

我有一种横向网格,其中每一行都是一个字段,每列都是一个实体。是否可以指定编辑参数每行,因此在一个列中,一行可以有一个下拉列表,另一行可以有一个文本框?

1 个答案:

答案 0 :(得分:1)

您可以使用自定义模板,例如:

<div><div ng-if="row.entity.colType === 'text'">
<form name="inputForm">
  <input
    type="INPUT_TYPE"
    ui-grid-editor 
    ng-class="'colt' + col.uid"
    ng-model="MODEL_COL_FIELD">
</form> 
</div>
<div ng-if="row.entity.colType === 'dropdown'">
  <form 
    name="inputForm"> 
    <select 
      ng-class="'colt' + col.uid" 
      ui-grid-edit-dropdown 
      ng-model="MODEL_COL_FIELD" 
      ng-options="field[editDropdownIdLabel] as    field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray">
    </select>
  </form>
</div>
</div>

是可编辑单元格的基本示例,其类型因字段colType而异。

我只是复制并粘贴了ui-grid.edit中的基本模板,并在每个模板周围放置了一个ng-if。

我构建了this plunker,但正如您所看到的,它在点击后不会隐藏输入,因此我猜您应该按照{{3}中的建议创建类似于uiGridEditor的自定义指令}。