我在我的项目中使用ui-grid。
我在ui-grid中使用expandable功能。
我需要只扩展一行。
例如,如果我点击' +'在第5行上签名,然后点击' +'在第2行上签名,必须关闭第5行,并且必须扩展第2行。
任何想法如何在ui-grid中实现这种行为?
答案 0 :(得分:2)
您应该使用可扩展功能中的以下API:
rowExpandedStateChanged
这是在更改扩展状态时引发的事件,可用于拦截扩展另一行的用户。
toggleRowExpansion(rowEntity)
这可以在接收事件时使用,以关闭任何其他扩展行。
在您的代码中,您应该在gridOptions.onRegisterApi
gridApi.expandable.on.rowExpandedStateChanged(scope,function(row){})
其中function是一个自定义函数,您可以在其中滚动网格中的所有行,通过选中row.isExpanded
并关闭每个展开的行(但显然是用户刚展开的行)来检查它们是否已展开。
提醒一下,正如团队在网站上所说的那样,请注意可扩展功能仍处于alpha阶段。
答案 1 :(得分:1)
覆盖主要功能,使角度UI Grid Force在展开/折叠底部时一次只展开一行..
搜索" toggleRowExpansion"在ui-grid.js中然后:
toggleRowExpansion: function (rowEntity) {
// --------- COMMENT THIS LINES: ---------
// var row = grid.getRow(rowEntity);
// if (row !== null) {
// service.toggleRowExpansion(grid, row);
// }
// --------- ADD THIS LINES: ---------
var row = grid.getRow(rowEntity);
if (row !== null) {
var isRowExpanded = row.isExpanded || false;
service.collapseAllRows(grid);
if(!isRowExpanded) service.toggleRowExpansion(grid, row);
}
}