DTColumnBuilder.newColumn(null).withTitle('Validation').renderWith(validationRenderer)
function validationRenderer(data, type, full, meta) {
return '<div class="btn-group">' +
'<label class="btn btn-default btn-sm">' +
'<input ng-click="vm.toggleValidation($event, ' + data.id + ', '+meta.row+', '+meta.col+')" name="validation'+data.id+'" type="radio" autocomplete="off" value="YES"> Yes' +
'</label>' +
'<label class="btn btn-default btn-sm">' +
'<input ng-click="vm.toggleValidation($event, ' + data.id + ', '+meta.row+', '+meta.col+')" name="validation'+data.id+'" type="radio" autocomplete="off" value="NO"> No' +
'</label>' +
'</div>';
}
vm.toggleValidation
機能がトリガされたの下に、ユーザは、ラジオボタンをクリック:
vm.toggleValidation = toggleValidation;
function toggleValidation(event, id, rowNum, colNum) {
event.stopPropagation();
// call to a server and then redraw ...
$log.info('Updating row and re-drawing it..');
var table = vm.dtInstance.DataTable;
var row = table.row(rowNum);
var rowData = row.data();
rowData.validation = event.target.value;
table.row(rowNum).data(rowData).draw(false);
}
レンダリングラジオボタンが停止再描画が完了するとすぐに作業します。ラジオボタンが表示されますが、ラジオボタンをクリックするとtoggleValidation
が呼び出されません。ラジオボタンは一度だけ機能します。 draw
機能を削除すると、機能が完璧に動作するので、行を再描画する際に問題があります。