初めての jQuery プラグインを作成しています。JSON データを受け取り、それをテーブルにロードします。ほとんどのロジックは完了しましたが、デフォルトのオプション配列の作成に問題があります。
私がやりたいことは、次のようなオプション配列を渡すことです:
/* Column array format:
cols:
[colname:
{
title: 'Column Title', // Column title for display (if not specified, will
// use 'colname' value instead.
sorttype: 'text', // 'text', 'dropdown' or 'none'
},
nextcolname:
{
...
},
...
]
*/
私が問題を抱えているのは、オプションが渡されない場合にデフォルトの配列をパックすることです。これが私が持っているものです:
var settings = $.extend ({
'cols' : 'auto',
'sortable' : 'true' //turn off sorting altogether with this option.
}, options);
var index = '';
var element = '';
var colname = '';
// No columns specified. That's OK, grab keys from first JSON element.
if (settings.cols == 'auto')
{
settings.cols = Object.keys(data[0]);
$.each(settings.cols, function(index, colname){
settings.cols[colname].title = colname;
settings.cols[colname].sorttype = 'text';
})
}
まず第一に、スタイルに関しては、私はこれを正しい方法で行っているように見えますか? オプション配列の形式と解析方法の両方が理にかなっていますか? 次に、settings.cols[colname].title は (もちろん) 存在しないため、型エラーを返します。このオブジェクトを効果的に使用して繰り返し処理できるようにするには、どうすればよいでしょうか?