AngularJs:使用 ag-grid 的 $scope.grid.api.setRowData() 不起作用
Posted
技术标签:
【中文标题】AngularJs:使用 ag-grid 的 $scope.grid.api.setRowData() 不起作用【英文标题】:AngularJs : using ag-grid's $scope.grid.api.setRowData() does not work 【发布时间】:2020-07-19 23:23:24 【问题描述】:所以,我分叉了this simple ag-grid demo Plunker,分叉的版本是here。
唯一的变化是旧代码为ag-grid
静态分配行数据,而我的fork 尝试使用API 动态分配i。
一世
老:
var rowData = [
make: "Toyota", model: "Celica", price: 35000,
make: "Ford", model: "Mondeo", price: 32000,
make: "Porsche", model: "Boxter", price: 72000
];
// let the grid know which columns and what data to use
var gridOptions =
columnDefs: columnDefs,
rowData: rowData,
onGridReady: function ()
gridOptions.api.sizeColumnsToFit();
;
新:
var rowData = [
make: "Toyota",
model: "Celica",
price: 35000
,
make: "Ford",
model: "Mondeo",
price: 32000
,
make: "Porsche",
model: "Boxter",
price: 72000
];
$scope.grid =
columnDefs: columnDefs,
rowData: [],
rowSelection: 'single'
;
$scope.grid.api.setRowData(rowData);
在我的 Plunker 中以及在 localhost
上尝试此操作时,ag-grid
都不会出现。
我做错了什么?
[更新] 我想在用户每次单击按钮时从服务器获取数据,而不仅仅是在网格准备好时,并使用它的 api 分配网格的 rowData。
[更新] 我刚刚在 localhost 上注意到,虽然 $scope.gridOptions
已定义,但 $scope.gridOptions.api
未定义
【问题讨论】:
【参考方案1】:$scope 设置后不会立即有 grid.api 数据。您必须在 $scope.grid 的 onGridReady 函数中设置数据,如下所示。 https://plnkr.co/edit/qgPae2iGIl1A9i8O?preview
$scope.grid =
columnDefs: columnDefs,
rowData: [],
rowSelection: 'single',
onGridReady: function()
$scope.grid.api.setRowData(rowData);
;
【讨论】:
这就是网格的 APIsetRowData()
函数的用途(而且更灵活)? Plunker 非常简化,BUT,我想在用户每次单击按钮时从服务器获取数据,而不仅仅是在网格准备好时。你能帮忙吗?谢谢【参考方案2】:
好的,我解决了。这是静态和动态网格之间的区别。见this Plunker。
将 html 更改为 <div id="myGrid" class="ag-fresh" style="height: 100px;"></div>
(删除 ag-grid="grid"
),然后在控制器中:
var currentCandidatesGridDiv = document.querySelector('#myGrid');
new agGrid.Grid(currentCandidatesGridDiv, $scope.grid);
$scope.grid.api.setRowData(rowData);
我要求这个帮助a previous question,并且帮助了自己一点 - 只是希望我也帮助了其他人:-)
【讨论】:
以上是关于AngularJs:使用 ag-grid 的 $scope.grid.api.setRowData() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
AngularJs - 使用“控制器作为”语法的 ag-grid rowData
AngularJs 在 UI 路由器状态视图中向 ag-grid 单元格添加按钮