角度网格(ag-grid)显示/隐藏不起作用

时间:2015-07-06 13:35:00

标签: javascript angularjs angular-grid

我正在使用Angular Grid(ag-grid)来显示数据。在我的gridOptions中,我使用cellClicked在单击其中一列时调用函数。该函数SeeDetails只是将范围上的变量设置为true或false来隐藏/显示包含ag-grid的div。它由于某种原因不起作用。

为了测试,我在ag-grid之外创建了一个调用相同SeeDetails函数的按钮。当这样做时,div隐藏网格就好了(在我的html中,我有ng-show="vm.ShowDetails == 'false'"来隐藏网格)。

我认为它与范围有关,只是不确定是什么。有什么想法吗?

HTML:

<div ng-show="vm.ShowDetails == 'false'">
    <div style="height: 800px" ag-grid="vm.gridOptions" class="ag-fresh"></div>
</div>

视图模型:

var vm = this;
vm.ShowDetails = 'false';

vm.gridOptions = {
    rowData: null,
    enableColResize: true,
    enableSorting: true,
    enableFilter:  true,
    columnDefs: [
        {
            field: 'LogID',
            headerName: 'Log ID a',
            width: 100
        }, {
            headerName: 'Log ID',
            name: 'Log ID',
            cellClicked: function (params) {
                vm.SeeDetails(params.data.LogID);
            },
            cellRenderer: function (params) {
                return '<a>' + params.data.LogID + '</a>';
            }
        }, {
            headerName: 'Date Of Error',
            name: 'Col Name',
            cellRenderer: function (params) {
                return moment(params.data.TimeOfError).format('DD/MMM/YYYY')
                //return params.data.TimeOfError;
            }
        }
    ]
};

vm.SeeDetails = function SeeDetails(LogID) {
    if (vm.ShowDetails == 'false') {
        vm.ShowDetails = 'true';
    } else {
        vm.ShowDetails = 'false';
    }
}

2 个答案:

答案 0 :(得分:1)

在此特定回调中,ag-grid不会调用摘要周期。

要修复,只需确保摘要周期开始。

通过以下方式做到:

RedirectUri

超时作为保护完成,以确保摘要周期尚未运行。需要调用本机超时而不是使用角度超时服务,因为角度超时将保证摘要正在运行(您不想要)。

答案 1 :(得分:0)

$timeout(function() {
     $scope.gridOptions.api.checkGridSize()
});

为我工作。