私がFirefoxでデバッグしていて、デバッガーがディレクティブを入力することになっている場合:
dialogApp.directive('myTable', function($timeout) {
return function(scope, element, attrs) {
$timeout(function(){
// apply DataTable options, use defaults if none specified by user
var options = {};
if (attrs.myTable.length > 0) {
options = scope.$eval(attrs.myTable);
} else {
options = {
"bStateSave": true,
"iCookieDuration": 2419200, /* 1 month */
"bJQueryUI": true,
"bPaginate": false,
"bLengthChange": false,
"bFilter": false,
"bInfo": false,
"bDestroy": true
};
}
// Tell the dataTables plugin what columns to use
// We can either derive them from the dom, or use setup from the controller
var explicitColumns = [];
// element.find('th').each(function(index, elem) {
// explicitColumns.push($(elem).text());
//});
if (explicitColumns.length > 0) {
options["aoColumns"] = explicitColumns;
} else if (attrs.aoColumns) {
options["aoColumns"] = scope.$eval(attrs.aoColumns);
}
// aoColumnDefs is dataTables way of providing fine control over column config
if (attrs.aoColumnDefs) {
options["aoColumnDefs"] = scope.$eval(attrs.aoColumnDefs);
}
if (attrs.fnRowCallback) {
options["fnRowCallback"] = scope.$eval(attrs.fnRowCallback);
}
// apply the plugin
var dataTable = element.dataTable(options);
// new FixedColumns( dataTable);
// watch for any changes to our data, rebuild the DataTable
scope.$watch(attrs.aaData, function(value) {
var val = value || null;
if (val) {
dataTable.fnClearTable();
dataTable.fnAddData(scope.$eval(attrs.aaData));
}
});
},1000);
};
});
デバッグが停止し、それ以上何もレンダリングされません。これは、動的ヘッダーを持つテーブルの作成に取り組んでいるデモです (このディレクティブの主なアイデアはネット自体から選択されています)。タイムアウトを使用した遅延は、ディレクティブが機能する前に ng-repeat が終了できるように導入されています。 . この問題について何らかの支援をいただければ幸いです。前もって感謝します