2017-02-03 5 views
0

角度データテーブルを使用して、サービスコールから返されるデータのリストをロードしています。これは、行数変数使用して改ページ長を切り替えるオプションで有効にサーバー側の改ページを持っている角度データテーブルdtInstance.reloadData()とdtInstance.rerender()の違いは何ですか?

var vm=this; 
vm.DisplaySLAChart =true;   
var rowCount = (vm.DisplaySLAChart==true?5:10); 
vm.dtInstance = {};  

vm.dtOptions = DTOptionsBuilder.newOptions() 
.withFnServerData(serverData) 
.withDataProp('data') 
.withOption('processing', true) 
.withOption('serverSide', true) 
.withOption('paging', true) 
.withPaginationType('full_numbers') 
.withDisplayLength(rowCount) 
.withDOM('<"top">t<ip"bottom"><"clear">'); 

function serverData(sSource, aoData, fnCallback, oSettings) 
{ 
    //Server side data fetching logic 
} 

私は、チェックボックスのNG-変化にユーザが設定した「vm.DisplaySLAChart」フラグに基づいて、このページの長さを変更する必要がありますイベント。チェックボックスは、ng-modelを使用して "vm.DisplaySLAChart"の値を設定しています。 フラグがtrueの場合、1ページに5レコードしか表示されません。それ以外の場合、1ページに10レコードを表示します。

チェックボックスng-changeは、次のメソッドを呼び出します。 rowcnt変数で指定されている。ここ

vm.toggleLength = function() { 

var rowCnt = (vm.DisplaySLAChart == true ? 5 : 10); 
vm.dtOptions.withDisplayLength(rowCnt); 
vm.dtInstance.reloadData(); 
}; 

私はvm.dtInstance.reloadData()を使用する場合は、データテーブルには、数レコードのデータをロードします。全く問題なし。

vm.dtInstance.rerender();の代わりにvm.dtInstance.reloadData();を使用すると、表示されるレコードの数が正しくないことがあります。

rerenderとreloaddataの違いは何ですか? あなたの助けを歓迎します

答えて

1

dtInstance.rerender():テーブルを完全に再描画します。これは、サーバーにデータを再送信する必要はありません。

dtInstance.reloadData():要求をサーバーに再送信して、DataTableのデータを再読み込みします。このAPIは、Ajaxレンダラーとプロミスレンダラーでのみ使用できます。

関連する問題