AngularJs过滤器参数未定义

时间:2015-06-24 17:36:36

标签: angularjs angular-ui-grid

我正在使用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>

http://plnkr.co/edit/RC8sUwvjrNJqchzeBuA5?p=preview

1 个答案:

答案 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^^^^^^^^^^^^^
 });