2015-10-06 44 views
3

我使用 數據表:https://l-lin.github.io/angular-datatables 和引導:https://angular-ui.github.io/bootstrap/角存儲數據並刷新數據表

這是我嘗試才達到:後添加使用模式從引導數據並保存,數據表是重裝(不重新加載當前路線)。

這裏是我的modalCtrl:

.controller('addModalCtrl', ['$scope', '$modalInstance', '$http', 'AdminMenu', 'ResultService', 
    function ($scope, $modalInstance, $http, AdminMenu, ResultService) { 

    $scope.cancel = function() { 
     $modalInstance.dismiss('cancel'); 
    }; 

    $scope.menu = {}; 

    $scope.doSubmit = function() { 
     var data = { 
      name: $scope.menu.title, 
      icon: $scope.menu.icon 
     }; 

     AdminMenu.save(data, function (response) { 
      $scope.menu = {}; 
      ResultService(response); 
      $modalInstance.dismiss('cancel'); 
     }, function (response) { 
      ResultService(response.data); 
     }) 
    }; 
}]) 

這裏是我的數據表功能:

function AdminMenuTableData($compile, $scope, $modal, DTOptionsBuilder, DTColumnBuilder, SweetAlert, AdminMenu, ResultService, APIROOT) { 

$scope.dtOptions = DTOptionsBuilder.fromSource(APIROOT + 'admin-menus') 
    .withOption('order', [0, "asc"]) 
    .withOption('createdRow', function (row, data, dataIndex) { 
     // Recompiling so we can bind Angular directive to the DT 
     $compile(angular.element(row).contents())($scope); 
    }); 

$scope.dtColumns = [ 
    DTColumnBuilder.newColumn('id', 'ID').withOption('searchable', false), 
    DTColumnBuilder.newColumn('name', 'Name'), 
    DTColumnBuilder.newColumn('', 'Actions').renderWith(function (data, type, full, meta) { 
     return '<a class="btn btn-default btn-xs" ng-click=edit(' + full.id + ')><i class="fa fa-pencil"></i></a> ' + 
      '<a class="btn btn-danger btn-xs" ng-click=delete(' + full.id + ')><i class="fa fa-trash"></i></a>'; 
    }).notSortable() 
]; 

$scope.dtInstance = {}; 

function reloadData() 
{ 
    $scope.dtInstance.reloadData(); 
} 

}

我如何可以調用reloadData()函數,這樣我就可以刷新數據表。我試圖注入AdminenuTableData函數,但沒有運氣。注射器失敗。

有什麼建議嗎?

回答

8

改爲使用rerender()。它既破壞了表重新初始化,包括重裝AJAX來源:

$scope.reloadData = function() { 
    $scope.dtInstance.rerender(); 
} 

演示 - >http://plnkr.co/edit/HbMDcMne3OiH2KYbJ8Iv?p=preview

+0

它不工作,我需要相同的解決方案,你可以請更新代碼 –

+0

給出plunker不工作可以請你更新該代碼示例。 –

+0

@ 3rules,plunkr已更新。 github回購被改變了,這就是爲什麼它沒有工作。 – davidkonrad