我是AngularJS ui-grid的新手,也是导出器功能的首次使用者。 我正在尝试将导出菜单添加到在groovy / grails应用程序中运行的现有ui网格。 我使用这个例子作为指南: http://ui-grid.info/docs/#/tutorial/206_exporting_data
我添加了必要的javascript实用程序文件csv.js,pdfMake.js,vfs_fonts.js。 我在示例后面添加了gridOptions导出器选项。 我试着明确设置gridOptions
...
exporterMenuCsv: true,
exporterMenuPdf: true,
...
但是当它渲染网格菜单时,导出按钮全部丢失,只有列选择按钮可见。我可以通过FireBug看到实用程序javascript文件已加载,并且没有报告错误。
我错过了什么会导致菜单中没有生成导出按钮?
示例文档说明“请注意,导出所选数据的选项仅在您选择了数据时才可见。”但是在我的情况下,无论选择何种数据,都不会显示导出按钮。
我正在使用ui-grid 3.0.0-rc.20
答案 0 :(得分:0)
解决:问题是由Angularjs模块的冗余定义引起的。
我读完以下内容后
Angular ui grid, change behavior of "Export all data as csv"
Angular ui-grid external export buttons
我尝试将自己的“导出”按钮显式定义到菜单,并出现“未知提供程序错误”,然后我遇到了以下内容:
https://docs.angularjs.org/error/ $注射器/ unpr
当我意识到我意外地重新定义了我的模块并在其中一个定义中省略了“ui.grid.exporter”时,因为我在应用程序中使用了多个AngularJS文件。删除额外的模块定义后,出现了导出按钮!
答案 1 :(得分:0)
它与加载选项和数据的顺序有关。在加载数据之前,请加载网格选项。
//call this when page constaining grid loads
$scope.loadPage = function(){
$scope.gridOptions = {
columnDefs: [
{ field: 'field1'},
{ field: 'field2'},
{ field: 'rhs' }
],
enableGridMenu: true
}
}
//call this when payload is available
$scope.gridOptions.data = data;