我正在使用 ng-grid 的新 3.0 版本ui-grid在我的应用程序中制作网格。我想要做的是使我的表中的一个可编辑单元格成为一个ng-options下拉列表,其中填充了使用角度工厂检索到的数据。
我正在尝试通过使用ui-grid的editableCellTemplate功能来做到这一点。
这是一些示例代码:
HTML:
<div ui-grid="gridOptions" ui-grid-edit class="grid"></div>
控制器:
$scope.gridOptions = {
enableSorting: true,
enableFiltering: true,
enableCellEditOnFocus: true,
columnDefs: [
{ field: 'name',
sort: {
direction: 'desc',
priority: 1
}
},
{ field: 'gender', editType: 'dropdown', enableCellEdit: true,
editableCellTemplate: 'temp.html' },
{ field: 'company', enableSorting: false }
]};
temp.html:
<div>
<select ng-model="row.entity.gender" data-ng-options="d as d.type for d in genderType">
<option value="" selected disabled>Choose Gender</option>
</select>
</div>
这是一个带有代码的plunker。[注意:这只是示例代码。ng-options 的数组是从实际代码中的角度工厂中提取的,并且未在范围内声明。editDropdownOptionsArray 可能不起作用,因为数据是动态的。]
是否可以使用 ui-grid 执行此操作?我认为这可能是范围问题,因为如果我将 ng-option 代码放在我的 HTML 页面中,它会按预期工作,但我可以从 ui-grid 文档中收集到 temp.html 文件应该在范围内. 我知道这些东西仍然处于不稳定的版本中,但是对于此事的任何帮助将不胜感激!
**2015 年 3 月 31 日更新:**
如果您正在尝试此解决方案并且它不起作用,请注意。一月份,外部作用域的代码被重构getExternalScopes()
为grid.addScope.source
. https://github.com/angular-ui/ng-grid/issues/1379
这是带有新代码的更新 plunkr:点击我!