我一直在努力1天以上,试图找到一种解决方案,以用后端数据预填充angular-ui-grid下拉菜单。是的,我已经看到很多类似的问题,但是没有一个人谈论用后端的真实数据填充selectOption。
它可以与这样的预定义数组配合使用:$scope.tiposArquivoSelecionados = [{ value: 1, label: 'First'}, { value: 2, label: 'Second'}, { value: 3, label: 'Third'}];
但是当我尝试使用从后端收集的数据填充selectOption时,不会显示selectOption。看看:
成功收集了数据,成功渲染了网格,这让我认为这是一个时序问题。
以下是我尝试解决所有时序问题的一些变通方法的列表:
他们都没有工作= /
selectOptions数组声明:
$scope.tiposArquivoGridSelectOptions = [];
来自GridOptions.columnDefs的代码:
{
field: 'controleArquivoId',
name: 'Tipo de Arquivo',
cellClass: 'ui-grid-cell-padding',
enableFiltering: true,
enableSorting: true,
enableHiding: true,
filter: {
type: uiGridConstants.filter.SELECT,
selectOptions: $scope.tiposArquivoGridSelectOptions,
},
sort: {
direction: uiGridConstants.ASC,
priority: 3
}
},
在我的控制器中,我具有init()方法,该方法调用服务以从后端收集数据并填充selectOption数组。
AutorizacoesReenvioService.listarTiposArquivoPorAno(moment().year()).then(
function (success) {
var responseData = success.data;
responseData.forEach(function(item) {
$scope.tiposArquivoGridSelectOptions.push(
{
value: item.id,
label: item.nomeArquivo
}
);
});
$scope.gridApi.core.refresh();
},
function (error) {
console.error(success.data);
}
);