Как исправить Unmatched '{' в скрипте с 6 функциями для Datatable с childRows - PullRequest
1 голос
/ 25 мая 2019

Я пытаюсь реализовать функцию дочерних строк для отображения дополнительных столбцов, извлеченных из электронной таблицы Google, в базовую таблицу данных, которую я настроил с помощью комбинации сценариев Datatables, Tabletop и Bootstrap, упакованных на github.Этот базовый набор данных работает и работает без ошибок.

Я создал дубликат html-страницы и JS-файла и изменил код для реализации дочерних строк в соответствии со справочной страницей Datatable.Html-страница находится здесь: https://www.socialtheorywatch.org/database2.html Если вам нужно увидеть оригинальный базовый работающий код данных, просто удалите 2 из URL.

Консоль браузера Google Chrome и JShint продолжают выдавать Unmatched { в строке 73 моего кода $(document).ready(function() {.Полный список ошибок JShint выглядит следующим образом:

Четыре предупреждения 127 Ожидается идентификатор, и вместо этого он увидел ')'.127 Ожидал присваивания или вызова функции и вместо этого увидел выражение.73 Непревзойденный '{'.128 Неустранимая синтаксическая ошибка.(Сканировано на 100%).

До проблемы с синтаксической ошибкой у меня была хорошо составлена ​​таблица с успешно отрисованным столбцом открытия / закрытия, но функция onClick не выявляла дочерние строки.Я разместил эту проблему на форуме Datables, и они помогли мне переместить функцию onClick в нижнюю часть функции writeTable, удалив закрытую фигурную скобку '}' из строки прямо перед ней.Но теперь я получаю синтаксические ошибки и безуспешно добавляю / удаляю / переставляю все виды скобок везде.

$(document).ready(function() {

  function initializeTabletopObject() {
    Tabletop.init({
      key: key,
      callback: function(data, tabletop) {
        writeTable(data); //call up datatables function
      },
      simpleSheet: true,
      debug: false });
  }

  initializeTabletopObject();

  function writeTable(data) {
    //select main div and put a table there
    //use bootstrap css to customize table style: http://getbootstrap.com/css/#tables
    $('#childRowTest').html(
      '<table cellpadding="4" cellspacing="4" border="1" class="table table-condensed table-bordered table-striped table-hover table-responsive" id="wrongfulConvictionDBSA"></table>'
    );

    //initialize the DataTable object and put settings in
    $("#wrongfulConvictionDBSA").DataTable({
      "autoWidth": false,
      "data": data,
      "columns": columns,
      "order": [
        [7, "desc"]
      ], //order on second column
      "pagingType": "simple_numbers" //'Previous' and 'Next' buttons, plus page numbers
      //"pageLength": 50
      //"lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ]
        //uncomment these options to simplify your table
        //"paging": false,
        //"searching": false,
        //"info": false
    });

  // Add event listener for opening and closing details
    $('#wrongfulConvictionDBSA tbody').on('click', 'td.details-control', function () {
        var tr = $(this).closest('tr');
        var row = table.row( tr );

        if ( row.child.isShown() ) {
            // This row is already open - close it
            row.child.hide();
            tr.removeClass('shown');
        }
        else {
            // Open this row
            row.child( format(row.data()) ).show();
            tr.addClass('shown');
        }
    });  
});
//end of writeTable

Я ищу решение синтаксических ошибок.

1 Ответ

0 голосов
/ 25 мая 2019

Это скорее ответ на вопрос «таблица не определена», описанная в этом комментарии , но попытка решить ее в ответах кажется несколько неуклюжей и неуместной.

Похоже, ваш код основан на этом примере .

Но в этом примере переменная table объявлена ​​и ей присвоено возвращаемое значение вызова DataTable:

  var table = $(...).DataTable({...})

и вы не делаете этого в своем коде:

//initialize the DataTable object and put settings in
$("#wrongfulConvictionDBSA").DataTable({
  "autoWidth": false,
  "data": data,
   ...

Могут быть и другие проблемы, но я бы начал с получения переменной table и затем посмотрел бы, что будет дальше, если что-нибудь произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...