【问题标题】:How to make ng-click work in a Angular DataTables column builder?如何使 ng-click 在 Angular DataTables 列构建器中工作?
【发布时间】:2017-08-25 12:43:59
【问题描述】:

所以我有这个代码:

控制器:

    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() 工作,尽管一切都完美呈现。我在这里遗漏了什么吗?

【问题讨论】:

标签: javascript angularjs datatable angular-datatables


【解决方案1】:

尝试下面的解决方案。在 vm.dtColumns 之后放置一个 createdRow 函数,您需要 compile row 来处理 ng-click 事件。

  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)
    }

【讨论】:

  • 成功了。现在我的问题是如何将项目的索引传递给按钮。
  • @FewFlyBy,我不确定,但你可以在meta找到它。
  • @chiragsatapara ng-click="openViewProductModal('+full.product_id+')" ...
猜你喜欢
  • 2013-01-06
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多