grid.appScope不支持分页

时间:2016-08-09 12:55:15

标签: angularjs angular-ui-grid

这里是代码

在每一行上创建编辑按钮。

    var statusTemplate = '<button type="button" class="btn btn-default" ng-click="grid.appScope.add(lg,{{row.entity.StudentID}})">Add</button> ';    /** <div> {{row.entity.StudentID}}</div>**/
            $scope.studentModel = {
                paginationPageSizes: [10, 20, 75],
                paginationPageSize: 10,
                useExternalPagination: true,
                useExternalSorting: true,
                enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
                enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
                columnDefs: [
                { field: 'StudentID', displayName: 'No.' },
                { field: 'StudentName', displayName: 'Name' },
                { field: 'Height', displayName: 'Height' },
                {
                    field: 'StudentID',
                    displayName: 'status',
                    cellTemplate: statusTemplate
                }
                ],
                onRegisterApi: function (gridApi) {
                    $scope.gridApi = gridApi;
                    $scope.gridApi.core.on.sortChanged($scope, function (grid, sortColumns) {
                        if (sortColumns.length == 0) {
                            paginationOptions.sort = null;
                            paginationOptions.sortBy = 'StudentID';
                        } else {
                            paginationOptions.sort = sortColumns[0].sort.direction;
                            paginationOptions.sortBy = sortColumns[0].field;
                        }
                        $scope.getAllUser();
                    });
                    gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
                        paginationOptions.pageNumber = newPage;
                        paginationOptions.pageSize = pageSize;
                        $scope.getAllUser();

                    });
                }
            };

  $scope.add = function (size, id) {
            console.log(id);
});

我在网格中有3页。

在第一页上,ng-click="grid.appScope.add(lg,{{row.entity.StudentID}})绑定(渲染)完美并单击按钮,然后在控制台结果上获得正确的ID。

但是当我进入第二页然后渲染StudentID完美(使用F12)。但当我点击第二页上的任何按钮时,它会给我第一页studentID。

grid.appScope仅适用于第一页。它不适用于其他页面(渲染完美,但点击时给出错误的ID)。

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果你创造一个plunkr将很容易理解。 截至目前我可以建议使用浏览器检查工具,尝试检查第二页上是否仍然存在该模板

答案 1 :(得分:0)

当我在解决问题时为我的问题创建plnkr链接。

存在类似

的语法问题
 var statusTemplate = '<button type="button" class="btn btn-default" ng-click="grid.appScope.add(lg,row.entity.StudentID)">Add</button> '; 

row.entity.StudentID代替{{row.entity.StudentID}}

在我尝试了这个{{row.entity.StudentID}}之后,

row.entity.StudentID语法在plnkr上没有用,我的问题就解决了。

此处有工作链接:http://plnkr.co/edit/J8aDQR?p=preview