Как я могу добавить строки, сгенерированные из объекта с помощью ветки, в мои данные? - PullRequest
0 голосов
/ 29 января 2019

Вот как я добавляю строки в свои таблицы данных:

  $(document).on('change', '.item-select', function() {
    var optionValue = $(this).val();
    var optionText = $('.item-select option[value="'+optionValue+'"]').text();
    if (optionValue) {
      table.row.add({
        "id":       'test',
        "name":   'test',
        "type":   'test',
      }).draw();
      $('option', this).first().prop('selected', true);
    }
  });

У меня есть объект columns:

array:3 [▼
  "id" => ReflectionProperty {#7030 ▶}
  "name" => ReflectionProperty {#7031 ▶}
  "type" => ReflectionProperty {#7034 ▶}
]

Теперь мне нравится заменять жестко закодированные поля наполя из моего объекта.Это мой подход:

  $(document).on('change', '.item-select', function() {
    var optionValue = $(this).val();
    var optionText = $('.item-select option[value="'+optionValue+'"]').text();
    if (optionValue) {
      table.row.add({
        {% for key, value in columns %}
        {   "{{ key }}": 'test'},
        {% endfor %}
      }).draw();
      $('option', this).first().prop('selected', true);
    }
  });

Ошибка в консоли заключается в следующем:

SyntaxError: ожидаемое имя свойства, получено '{'

1 Ответ

0 голосов
/ 30 января 2019

Вы должны удалить фигурные скобки ...

  $(document).on('change', '.item-select', function() {
    var optionValue = $(this).val();
    var optionText = $('.item-select option[value="'+optionValue+'"]').text();
    if (optionValue) {
      table.row.add({
        {% for key, value in columns %}
          "{{ key }}": 'test',
        {% endfor %}
      }).draw();
      $('option', this).first().prop('selected', true);
    }
  });
...