2017-09-15 1 views
0

So initialisieren Sie die jquery-Datentabelle beim initComplete-Ereignis erneut. Ich habe einen Ajax-Aufruf in InitComplete hinzufügen und Daten von Datatable ersetzen möchten, wie kann ich das tun, gibt es eine Idee?Wie initiiere ich jquery Datatable auf initComplete?

Hier ist mein Code.

$scope.tbOptionsrejectionreport = { 
    data: [], 
    bAutoWidth: false,  
    sAjaxSource: 'api/api.php?type=get_rejectionreport&status=default&managerId='+managerid+'&isAdmin='+Adminuser, 
    initComplete: function() 
    { 

     $("#rejectionreportlist").click(function(){  
     $('#example_rejectionreport').DataTable().clear().destroy(); 
      var rejection_date = $("#rejectiondate").val(); 

      $http.post(
      'api/api.php?type=get_rejectionreport&rejectiondate='+rejection_date+'&managerId='+managerid+'&isAdmin='+Adminuser, 
      { 

      }) 
     .then(function(answer) { 
      //$("#example_rejectionreport").dataTable().fnDestroy(); 
      $("#example_rejectionreport").dataTable({ 
       data: [],   
       bAutoWidth: false , 
       aoColumns : [ 
       { 
        sWidth: "1%", 
        bSortable: true,           
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[0]; 

         return tbAction; 
        } 
       }, 
       { 
        sWidth: "1%",     
        bSortable: true, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[1]; 

         return tbAction; 
        } 
       }, 

       { 
        sWidth: "5%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[2]; 

         return tbAction; 
        } 
       }, 
       { 
        sWidth: "3%",    
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[3]; 

         return tbAction; 
        } 
       }, 
       { 
        sWidth: "3%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[4]; 

         return tbAction; 
        } 

       }, 
       { 
        sWidth: "3%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[5]; 

         return tbAction; 
        } 

       }, 
       { 
        sWidth: "3%",     
        bSortable: false, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[6]; 

         return tbAction; 
        } 

       }, 
       { 
        sWidth: "3%",    
        bSortable: true, 
        mRender: function (data, type, full) { 
         var tbAction = ''; 

          tbAction += full[12]; 

         return tbAction; 
        } 

       },  
       ], 

       createdRow: function(row, data, dataIndex) {     
        $compile(row)($scope) 
       } 
      }); 
      /*var table = $("#example_rejectionreport").DataTable(); 
       console.log(answer.data.aaData); 

       $scope.rejectionlist= answer.data.aaData;*/ 
      }); 
     }); 

    }, 
    aoColumns: [   
     { 
      sWidth: "1%", 
      bSortable: true,           
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[0]; 

       return tbAction; 
      } 
     }, 
     { 
      sWidth: "1%",     
      bSortable: true, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[1]; 

       return tbAction; 
      } 
     }, 

     { 
      sWidth: "5%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[2]; 

       return tbAction; 
      } 
     }, 
     { 
      sWidth: "3%",    
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[3]; 

       return tbAction; 
      } 
     }, 
     { 
      sWidth: "3%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[4]; 

       return tbAction; 
      } 

     }, 
     { 
      sWidth: "3%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[5]; 

       return tbAction; 
      } 

     }, 
     { 
      sWidth: "3%",     
      bSortable: false, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[6]; 

       return tbAction; 
      } 

     }, 
     { 
      sWidth: "3%",    
      bSortable: true, 
      mRender: function (data, type, full) { 
       var tbAction = ''; 

        tbAction += full[12]; 

       return tbAction; 
      } 

     },    

    ], 
    createdRow: function(row, data, dataIndex) {     
     $compile(row)($scope) 
    } 
    }; 
+0

Das macht keinen Sinn. Sie versuchen, eine Tabelle zu laden und dann automatisch neu zu laden, bevor der Benutzer sie überhaupt betrachten kann? Es ist mir nicht klar, was Sie erreichen wollen. – Bindrid

+0

auf Last ich habe Datatable laden, aber jetzt auf Knopf klicken ich ajax Anruf hinzufügen und dann will ich Datatable ändern, so wie kann ich das tun? –

Antwort

0

Dies ist meine Antwort schließlich fand ich es

var Adminuser = $scope.isAdmin; 
     var managerid = $scope.userID; 
     $scope.tbOptionsrejectionreport = { 
     data: [], 
     bAutoWidth: false,  
     sAjaxSource: 'api/api.php?type=get_rejectionreport&status=default&managerId='+managerid+'&isAdmin='+Adminuser, 
     initComplete: function() 
     { 

      $("#rejectionreportlist").click(function(){  
      $('#example_rejectionreport').DataTable().clear().destroy(); 
       var rejection_date = $("#rejectiondate").val(); 

       $http.post(
       'api/api.php?type=get_rejectionreport&rejectiondate='+rejection_date+'&managerId='+managerid+'&isAdmin='+Adminuser, 
       { 

       }) 
      .then(function(answer) { 
       var data = answer.data.aaData; 

       var table = $('#example_rejectionreport').DataTable({ 
        destroy: true, 
        bLengthChange: false, 
        paging: true 
       }); 

       $.each(data, function(i, item) { 
        //console.log("inserting", item); 
        table.row.add([ 
        item['0'], 
        item['1'], 
        item['2'], 
        item['3'], 
        item['4'], 
        item['5'], 
        item['6'], 
        item['12'], 
        ]).draw(); 
       });  

       }); 
      }); 

     }, 
     aoColumns: [   
      { 
       sWidth: "1%", 
       bSortable: true,           
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[0]; 

        return tbAction; 
       } 
      }, 
      { 
       sWidth: "1%",     
       bSortable: true, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[1]; 

        return tbAction; 
       } 
      }, 

      { 
       sWidth: "5%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[2]; 

        return tbAction; 
       } 
      }, 
      { 
       sWidth: "3%",    
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[3]; 

        return tbAction; 
       } 
      }, 
      { 
       sWidth: "3%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[4]; 

        return tbAction; 
       } 

      }, 
      { 
       sWidth: "3%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[5]; 

        return tbAction; 
       } 

      }, 
      { 
       sWidth: "3%",     
       bSortable: false, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[6]; 

        return tbAction; 
       } 

      }, 
      { 
       sWidth: "3%",    
       bSortable: true, 
       mRender: function (data, type, full) { 
        var tbAction = ''; 

         tbAction += full[12]; 

        return tbAction; 
       } 

      },    

     ], 
     createdRow: function(row, data, dataIndex) {     
      $compile(row)($scope) 
     } 
     };