所以我有这段代码:
Controller :
vm.dtColumns = [
DTColumnBuilder.newColumn('product_code').withTitle('Code'),
DTColumnBuilder.newColumn('product_name').withTitle('Name'),
DTColumnBuilder.newColumn(null).withTitle('Actions').notSortable()
.renderWith(function(data, type, full, meta) {
return ` <button class="btn btn-info btn-raised" ng-click="openViewProductModal(${data.product_id})">View</button>`;
})
];
$scope.openViewProductModal = function(id) {
console.log(id)
}
HTML:
<div ng-controller="ProductCtrl as productControl" ng-init="loadProducts()">
<table datatable="" dt-options="productControl.dtOptions" dt-columns="productControl.dtColumns" dt-instance="productControl.dtInstance" class="row-border hover"></table>
</div>
虽然一切都完美呈现,但我什至无法让 console.log()
工作。我在这里遗漏了什么吗?
最佳答案
尝试下面的解决方案。在 vm.dtColumns
之后放置一个 createdRow
函数,您需要为 ng-click
事件。 compile row
vm.dtColumns = [
DTColumnBuilder.newColumn('product_code').withTitle('Code'),
DTColumnBuilder.newColumn('product_name').withTitle('Name'),
DTColumnBuilder.newColumn(null).withTitle('Actions').notSortable()
.renderWith(function(data, type, full, meta) {
return ` <button class="btn btn-info btn-raised" ng-click="openViewProductModal(${data.product_id})">View</button>`;
})
];
function createdRow(row, data, dataIndex) {
$compile(angular.element(row).contents())($scope);
}
$scope.openViewProductModal = function(id) {
console.log(id)
}
关于javascript - 如何使 ng-click 在 Angular DataTables 列生成器中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881739/