Поскольку единственная DataTable получает данные Json нескольких urls для renderizar

У меня есть два унифицированных указателя ресурса, которые подают данные об объектах в формате JSON, оба формата у него есть та же структура, кроме из-за типа команды:

Первая унифицированный указатель ресурса: http://127.0.0.1:8000/api/equipos/?rack=1

{
    "id": 1,
    "tipo_equipo": "EquipoA", ///Esto es diferente al otro
    "nomenclatura": "0501",
    "etiqueta": "Sin Eqtiqueta",
    "rack": "1"
} 

Вторая унифицированный указатель ресурса: http://127.0.0.1:8000/api/sws/?rack=1

{
    "id": 1,
    "tipo_sw": "ADCDi-R2CU1", ///esto es diferente al de arriba
    "nomenclatura": "0802",
    "etiqueta": "Sin Etiqueta",
    "rack": "145"
}

Я хотел бы renderizar одну DataTable с данными две urls для того, чтобы развернула одна одинокий таблицу.

$(document).ready(function($) {
$('#dataTables-example').DataTable({                  
    ajax: {
        url: '/api/switch/?rack='+{{pk3}},
  //////url: '/api/equipos/?rack='+{{pk3}},
        dataSrc: '',
        dataType: 'json',

    },
    columns:[
        {"data":"tipo_equipo"}, /////{"data":"tipo_switch"},
        {"data":"nomenclatura"},
        {"data":"etiqueta"},
        {"data":"rack"},
        {"data":"id"},
   ],

 });

});

Они могут поддерживать меня пожалуйста. Привет.

1
задан 31.05.2017, 20:51
1 ответ

Ты был бы должен реализовывать две просьбы ajax по отдельности, соединять полученные данные и применять их к нему к объекту DataTable.

Смотри этот пример. Сначала реализуй просьбу для данных о программном обеспечении и с оказанные позвони в функцию "datosSoftware". Эта функция преобразовывает результат, чтобы заменять свойство "tipo_sw" из-за "tipo_equipo" и реализует просьбу, чтобы возвращать данные команд. С результатом этой просьбы объедини два набора данных и он распределяет их в DataTable:

$(document).ready(function($){
  
  // 
  function datosSoftware(softData){
    // cambia la propiedad tipo_sw por tipo_equipo
    var tableData = softData.map(function(data) { 
        return {
          id: data.id, 
          tipo_equipo: data.tipo_sw, 
          nomenclatura: data.nomenclatura, 
          etiqueta: data.etiqueta, 
          rack: data.rack
        });
   // Realiza la petición de datos de equipos y carga el DataTable
    $.ajax({
      method: 'GET',
      url: '/api/equipos/?rack=' + {{pk3}},
      dataType: 'json'
      }).done(function(equipmentData){
        // Concatena los resultados
        tableData = tableData.concat(equipmentData);
        // Carga el DataTable
        $('#dataTables-example').DataTable({
            data: tableData,
            columns: [
              {"data": "tipo_equipo"},
              {"data": "nomenclatura"},
              {"data": "etiqueta"},
              {"data": "rack"},
              {"data": "id"}
          ]});
        });
  }
  
  // Realiza la petición de datos de software y llama a datosSoftware
  $.ajax({
      method: 'GET',
      url: '/api/switch/?rack=' + {{pk3}},
      dataType: 'json'
    }).done(datosSoftware);
  
});
1
ответ дан 24.11.2019, 13:38
  • 1
    Асиер, Большое спасибо из-за ответа, был большой помощи. Привет! – Rocke 16.08.2016, 15:10

Теги

Похожие вопросы