2016-05-11 1 views
0

Может ли кто-нибудь сообщить мне, почему я получаю эту ошибку.Uncaught TypeError: this.movie.setSheetName не является функцией - Angularjs Datatable

Uncaught TypeError: this.movie.setSheetName is not a function

При использовании кнопок в Angularjs DataTable упоминается здесь

https://l-lin.github.io/angular-datatables/#/withButtons

Вот код

$rootScope.dtOptions = DTOptionsBuilder.newOptions() 
    .withPaginationType('full_numbers') 
    .withDisplayLength(10) 
    .withDOM('frtip') 
    .withBootstrap() 
    .withBootstrapOptions({ 
     TableTools: { 
      classes: { 
      container: 'btn-group', 
       buttons: { 
        normal: 'btn btn-danger' 
       } 
      } 
     }, 
     ColVis: { 
      classes: { 
       masterButton: 'btn btn-primary' 
      } 
     }, 
     pagination: { 
      classes: { 
       ul: 'pagination pagination-sm' 
      } 
     } 
    }) 
    .withOption('bLengthChange', false).withButtons([ 
     'copy', 
     'print', 
     'excel' 
    ]); 

ответ

1

Вы должны иметь jszip установлены. Включите эту строку в ваш bower.jsondependencies секции (если вы используете беседку)

"dependencies": { 
    ... 
    "jszip": "2.6.0" 
} 

и запустить bower update. Или использовать npm:

npm install [email protected] 

Важно, чтобы вы специфичны об использовании 2.6.0 (или ниже). dataTables несовместим с последними 3.0.0.


Обновление; установка файла:

.withButtons([ 
    { 
     extend : 'excel' 
     filename: 'download', 
    }, 
    ... 
]) 

Это приведет в файл с именем download.xlsx

+0

после добавления этого, он сохраняет данные в виде двоичных объектов объекта .xlsx, но не с любым именем файла – Yahiya

+0

@Yahiya, просто указать имя файла а также - см. обновление. – davidkonrad

+0

Превосходно !! последний вопрос. Я вижу, что файл сохраняется с 210 Кб, но когда я открываю файл его пустым. Я на linux мяте с открытым офисом – Yahiya