В меню экспорта пользовательского интерфейса AngularJS отсутствуют кнопки экспорта

0

Я новичок в AngularJS ui-grid и первый пользователь функции экспортера. Я пытаюсь добавить меню экспорта в существующую ui-сетку, запущенную в приложении groovy/grails. Я использую этот пример в качестве руководства: 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 утилиты были загружены, и не было сообщений об ошибках.

Что мне не хватает, что приведет к тому, что кнопки "Экспорт" не будут сгенерированы в меню?

В примере doc говорится: "Обратите внимание, что опция экспорта выбранных данных видна только в том случае, если вы выбрали данные". Однако в моем случае кнопки экспорта не отображаются независимо от выбранных данных.

Я использую ui-grid 3.0.0-rc.20

Теги:
grails
angular-ui-grid

2 ответа

0
Лучший ответ

Решение: проблема была вызвана избыточным определением модуля Angularjs.

После того, как я прочитал следующее

Угловая сетка ui, изменение поведения "Экспорт всех данных в виде csv"

Кнопки внешнего экспорта угловой ui-сетки

Я попытался явно указать свою собственную кнопку экспорта в меню и получил "неизвестную ошибку поставщика", затем я натолкнулся на следующее:

https://docs.angularjs.org/error/ $ injector/unpr

И вот когда я понял, что случайно переопределил модуль и оставил "ui.grid.exporter" в одном из определений, так как я использовал несколько файлов AngularJS в приложении. Как только я удалил дополнительное определение модуля, появились кнопки "Экспорт"!

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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню