Angularjs 如何在重新加载数据后刷新UI网格布局

Angularjs 如何在重新加载数据后刷新UI网格布局,angularjs,angular-ui-grid,ui-grid,Angularjs,Angular Ui Grid,Ui Grid,我对Angular UI Grid()有问题。网格在用户单击按钮后出现的模式窗口中实现。 服务就是这样工作的:用户选择要准备的数据集并单击按钮。点击按钮后,网站向rest服务发送请求以接收数据。接收到数据后,显示带有表格的模式。列数取决于用户请求的数据 问题是,在用户更改列宽并使用此表关闭模式后,UI网格会“记住”用户留下的列宽。若用户将选择另一组我正在清理的数据GridOptions对象,并在收到数据后再次填充它。问题是行宽度保持在以前的状态。 到目前为止,我试过: 使用APIcore.re

我对Angular UI Grid()有问题。网格在用户单击按钮后出现的模式窗口中实现。 服务就是这样工作的:用户选择要准备的数据集并单击按钮。点击按钮后,网站向rest服务发送请求以接收数据。接收到数据后,显示带有表格的模式。列数取决于用户请求的数据

问题是,在用户更改列宽并使用此表关闭模式后,UI网格会“记住”用户留下的列宽。若用户将选择另一组我正在清理的数据GridOptions对象,并在收到数据后再次填充它。问题是行宽度保持在以前的状态。 到目前为止,我试过:

  • 使用API
    core.refresh()
    方法-在调试时,我可以看到 方法激发一些事件,但对我的网格没有影响
  • 删除整个DOM节点,并在接收新数据的响应之前再次追加它
  • 各种不同的黑客试图使用网格api中发现的许多方法——根本没有成功
很抱歉,我无法在任何小提琴中再现这一点,但这将是非常困难的,我担心要匹配我的情况

任何帮助都将不胜感激。谢谢


另外,它也适用于我的另一个表,用户可以在其中锁定和隐藏列。固定/隐藏列在接收全新数据后保持隐藏/固定。而且这并不酷。

一旦你将数据设置到网格,你应该调用这个-

gridApi.core.notifyDataChange( uiGridConstants.dataChange.ALL)  
从文件来看

通知我们发生了在公共api中使用的数据更改 让用户在更改数据或其他事件时告诉我们 我们的表走不动了

notifyDataChange
告诉框架某个选项或columndef已更改


签出此

谢谢您的回答。当我阅读文档和线程时,这应该可以工作,但不幸的是不能。除此之外,我在文档和代码中使用了:
gridApi.core.notifyDataChange(uiGridConstants.dataChange.ALL)
,该方法接受一个参数。将两个参数(如本线程中建议的)放在那里会产生错误。如果您创建一个plunkr或发布您的代码,这将有所帮助:
gridOptions.columnDefs.splice(0,gridOptions.columnDefs.length)
在隐藏网格时调用。