我正在使用Ui-grid
单元格下拉列表编辑功能。
问题是我不知道为什么以及如何在.filter中修复未定义的entity
变量。
我需要传递过滤数据以将id键更改为名称。
var user = res.query({}, function(data) {
$scope.workers = data;
$scope.gridOptions.data = data;
$scope.gridOptions.columnDefs[3].editDropdownOptionsArray = data;
$scope.gridOptions.columnDefs[3].cellFilter ="griddropdown:data:'_id':'login':row.entity.parent"
});
还有一些过滤器
.filter('griddropdown', function () {
return function (input, entity, idField, valueField, initial)
console.log(entity); // <--------- here entity is undefined
return 'DEF';
};
});
模板
<div class="row">
<div class="col-sm-12">
<div ui-grid="gridOptions" class="myGrid" ui-grid-resize-columns ui-grid-move-columns ui-grid-edit ui-grid-cellNav></div>
</div>
</div>
答案 0 :(得分:0)
似乎您正在使用范围内不存在的data
,您将其指定为JavaScript变量,而不是在范围内定义它。我建议您在html上使用$scope.gridOptions.columnDefs[3].editDropdownOptionsArray
,以便让代码正常运行。
代码
var user = res.query({}, function(data) {
$scope.workers = data;
$scope.gridOptions.data = data;
$scope.gridOptions.columnDefs[3].editDropdownOptionsArray = data;
$scope.gridOptions.columnDefs[3].cellFilter ="griddropdown: gridOptions.columnDefs[3].editDropdownOptionsArray :'_id':'login':row.entity.parent"
//^^^^^^^^^^^^this will do the trick^^^^^^^^^^^^^
});