我想要读取datatable
中的row值,因为我实现了类似的东西。
$('#entry-grid').on('click', '.check', function () {
var row = $(this).closest("tr");
var data = $scope.dtInstance.DataTable.row.data();
alert(data);
})
下面是我的桌子
<table id="entry-grid" datatable="" dtinstance="dtInstanceCallback" dt-options="dtOptions" dt-columns="dtColumns" class="table table-hover"></table>
但是在调试时我得到了错误
未捕获的TypeError:无法读取未定义的属性“行”
不知道为什么会给出错误
更新
这是我更新的Augugal代码,我正在尝试解决,但不是。
var app = angular.module('MyApp', ['datatables']);
app.controller('homeCtrl', ['$scope', '$http', 'DTOptionsBuilder', 'DTColumnBuilder',
function ($scope, $http, DTOptionsBuilder, DTColumnBuilder) {
$scope.dtColumns = [
DTColumnBuilder.newColumn(null, '').renderWith(function(data, type, full) {
return '<input type="checkbox" class="check" data-object-id="'+full.objectid+'">'
}),
DTColumnBuilder.newColumn("OBJECTID", "ID"),
DTColumnBuilder.newColumn("SERVICE_CODE", "Service Code"),
DTColumnBuilder.newColumn("COND1", "Condition 1"),
DTColumnBuilder.newColumn("COND2", "Condition 2"),
DTColumnBuilder.newColumn("COND3", "Condition 3"),
DTColumnBuilder.newColumn("SERVICE_TYPE", "Service type"),
DTColumnBuilder.newColumn("REMARK", "Remark"),
DTColumnBuilder.newColumn("DESCRIPTION", "Description")
]
$scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', {
url: "/home/getdata",
type: "POST"
})
.withPaginationType('full_numbers')
.withDisplayLength(10);
$scope.dtInstance = {};
$scope.dtIntanceCallback = function (instance) {
$scope.dtInstance = instance;
}
$scope.dtRebind = function () {
$scope.dtInstance.DataTable.draw()
}
$('#entry-grid').on('click', '.check', function () {
var row = $(this).closest("tr");
var data = $scope.dtInstance.DataTable.row().data(); // here is the error of row undefined
})
}])
答案 0 :(得分:1)
如果我没记错的话,正确使用的指令应该是dt-instance
而不是dtinstance
,因为您使用的是$scope.dtInstance
驼峰式的访问方式,因此等效指令将被烤肉包住。
<table id="entry-grid" datatable="" dt-instance="dtInstanceCallback" dt-options="dtOptions" dt-columns="dtColumns" class="table table-hover"></table>