2014-12-05 46 views
0

我目前無法獲取角度數據表來從服務器請求數據。Ajax調用服務器沒有被觸發

當我使用.fromFnPromise()它工作正常。我的代碼被調用,然後我打電話給我的服務來獲取數據。

vm.dtOptions = dataOptionBuilder.fromFnPromise(
     service.getViewItems() 
       .then(function(data) { 
        vm.logs = data; 
       }); 
    ) 
    .withPaginationType('full_numbers') 
    .withDisplayLength(25); 

不過,我現在需要做的服務器端分頁,所以我用.withOptions()並傳入AJAX選項:

<table id="dt_basic" datatable dt-options="dtOptions" dt-columns="dtColumns" class="table table-striped table-bordered table-hover"> 
    <thead> 
     <tr> 
      <th data-class="expand"><i class="fa fa-fw fa-lock"></i>Comment</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr ng-repeat="item in vm.logs"> 
      <td>{{ item.comment }}</td> 
     </tr> 
    </tbody> 
</table> 

我此基礎

vm.dtOptions = dataOptionBuilder.newOptions() 
            .withOption('ajax', { 
             url: '/api/services/app/patients/GetViewItems', 
             type: 'POST' 
            }) 
            .withDataProp('data') 
            .withOption('serverSide', true) 
            .withOption('processing', true) 
            .withOption('order', [[0, 'asc'], [1, 'asc']]) 
            .withPaginationType('full_numbers'); 

查看代碼在來自作者l-linPlnkr上。

任何想法爲什麼它不會觸發AJAX請求?

+0

Ajax請求被觸發。問題是由於某種原因HTML沒有被更新,我找不到原因。您可以通過在Chrome上按F12並轉到網絡標籤來查看請求。 – 2014-12-08 00:32:43

+0

也許你應該看看這個插件:http://ui-grid.info/ – 2014-12-08 00:34:21

回答

1

根據datatables參考指南,.withOption('serverSide', true)表示您有責任實施paging on your server

您可以使用use a function來爲您的角度服務調用分頁(以及篩選和排序)所需的信息,而不是指定ajax服務的路徑。

.withOption('ajax', function(data, callback, settings) { 
    //pass the data parameter to your service to access necessary paging info 
    service.getViewItems(data) 
    .then(function(result) { 
     callback(result); 
    }); 
}) 

這裏是掛鉤服務到選項建設者的演示:http://plnkr.co/edit/1V9qdpO47XBFtGVV6j2I?p=preview

+0

你真了不起! #lifeSaver非常感謝 – 2014-12-09 00:33:43