有人可以帮我解决rowCallback问题。问题是,我有一张桌子,您可以点击表格行的任意位置以获取所点击项目的打开信息。在第一个TD我设置复选框。但是当我选中复选框时,我不想打开信息。 这是图像以便更好地解释
我的代码
git reset --hard
答案 0 :(得分:3)
我自己有这个问题。我认为你的做法有点倒退。您在td
中声明rowCallback
点击处理程序,只是为了能够传递ID。相反,我会推荐这个:
将no-click
类添加到第一列以防止点击:
DTColumnBuilder.newColumn(null).withTitle(titleHtml).notSortable()
.withClass('no-click')
.renderWith(function(data, type, full, meta) {
vm.selected[full.id] = false;
return '<input type="checkbox" ng-model="showCase.selected[' + data.id + ']" ng-click="showCase.toggleOne(showCase.selected)">';
}),
更改rowCallback
除了将id
属性注入该行外,不做任何事情:
function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
$(nRow).attr('data-id', aData.id);
}
在td
上创建委派事件处理程序,以替换rowCallback
内的事件处理程序和someClickHandler()
:
$('#tableid').on('click', 'tbody td:not(.no-click)', function() {
var id = $(this).parent().attr('data-id');
vm.message = id;
$location.path('info/' + id);
})