javascript - 如何使 ng-click 在 Angular DataTables 列生成器中工作?

标签 javascript angularjs datatable angular-datatables

所以我有这段代码:

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/

相关文章:

javascript - AngularJS promise 解析在下一次用户交互之前不会更新 GUI

php - JSON 对象的索引数组元素

c# - 集合被修改;枚举操作可能不会在 Except 操作上执行

jquery - 如何在jquery数据表分页中选择记录

javascript - Dropzone js错误 "Uncaught TypeError: $(...).dropzone is not a function"

javascript - v-on :change. Native 未绑定(bind)在父组件 : Vue. js 中

javascript - Angular JS - 在外部 Controller 中调用指令函数

javascript - 如何使用jquery在div中添加span?

javascript - Jquery 不从数字中删除逗号和美元符号

angularjs - 使用 Angular ngResource 自定义 URL