这里是代码
在每一行上创建编辑按钮。
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)。
如何解决这个问题?
答案 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上没有用,我的问题就解决了。