Datatables, возвращающие отформатированные данные json с функциями javascript - PullRequest
1 голос
/ 23 мая 2019

Используя Datatables с исходным файлом .json, я пытаюсь манипулировать данными, прежде чем они отобразятся в таблице. Я пытаюсь просто удалить пробелы и заменить тире в этом примере.

Есть два способа манипулирования данными. Один из них - columnDefs, другой использует dataSrc и возвращает данные. Оба сбой, когда я пытаюсь использовать .split или .replace или даже .toLowerCase () ...

Например, у меня есть columnDefs, добавленные так:

 columnDefs: [
            {
                "render": function ( data, type, row ) {
                  console.log(data);
                  var cn = data.split(" ").join("-").toLowerCase();
                  return cn;
                },
                "targets": 1
            }
        ],

Консоль показывает:

Uncaught TypeError: data.split is not a function

Как мы манипулируем данными с помощью замены или тому подобного?

Мои данные выглядят так:

{
    "Licensee": "Whistles for Woods",
    "Contact Name": "Bob",
    "Street": "2230 Trail",
    "Suite / PO Box": 0,
    "City": "Alturas",
    "ST": "CA",
    "Zip Code": 997733,
    "Telephone": 0,
    "Email Address": "bobc@email.com",
    "Website Address": "www.domain.com",
    "Fax": "No fax",
    "Products": "whistle with custom logo",
    "Categories": "Miscellaneous"
  },

1 Ответ

1 голос
/ 23 мая 2019

Как обсуждено в комментариях

Мы просто хотим убедиться, что мы действительно манипулируем строками, а не любым другим типом данных. Поэтому в этом случае мы изменили бы код так, чтобы он выглядел примерно так:

 columnDefs: [
        {
            "render": function ( data, type, row ) {
              if(typeof data === 'string'){ 
                  //only if string manipulate
                  data = data.split(" ").join("-").toLowerCase();
              }
              // OR data = data.toString(); whichever is more convenient!
              return data;
            },
            "targets": 1
        }
    ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...