4

カスタム プロパティを設定し、後でアクセス/編集できるようにしようとしています。これは可能ですか?古いバージョンでは fnSettings を使用できることがわかりましたが、1.10.5 でこれを使用するにはどうすればよいですか?

$('#table').DataTable({
        customProp: 'Hello World'
});

次に、ボタンをクリックすると、次のことができると思いました。

$('.test').on('click', function(e){
      var table = $('#table').DataTable();
      console.log(table.settings.oInit.customProp);
 }

しかし、私は得る: Uncaught TypeError: Cannot read property 'customProp' of undefined

誰も私がこれを行う方法を知っていますか?

4

3 に答える 3

1

何らかの理由で、table.settings.oInit初期化時にのみアクセスできます。初期化後、どちらtable.settings$("#table").DataTable().settings保持されませんoInit(または初期化値にアクセスする関数)。oInit回避策は、変数に格納することです:

var init;

$('#example').DataTable({
   customProp: 'Hello World',
   initComplete: function(settings) { 
       init = settings.oInit;
   }
});

今、あなたはこれを行うことができます:

alert(init.customProp);

デモ (1.10.5) -> http://jsfiddle.net/ajLe1484/

どうやら dataTables はコールバックで 1 つのオブジェクトを渡し、別の方法でテーブル インスタンスによって「クリーンアップ」されたオブジェクトを渡します。dataTables がそれを行うことに少し驚いています。1.10.x でもテストしました。動作は同じでしoInitた。1.10.5 で廃止されたためではありません。

于 2015-03-14T08:59:26.040 に答える