ng显示无法在数据表列中工作

ng-show not working in datatables columns

本文关键字:工作 数据表 显示 ng      更新时间:2023-09-26

我正在使用数据表在angular中创建一个表。我使用了范围中的一个值,并将该值与收到的数据进行比较。

"columns": [{ data: null, render: function ( data, type, row ) {
var roleid =angular.element('#TextkeysController').scope().currentRole;
return '<p ng-show="'+data.id+' == '+roleid+'" class="btn btn-success btn-xs disabled" value="connected" >connected</p><p ng-show="'+data.id+' != '+roleid+'" class="btn btn-danger btn-xs" value="notConnected" ng-click="connectRole('''+data.id+''','''+data.name+''')">Not connected</p>';
}, name: 'connect', "className":"center"}]

当我加载数据时,两个按钮都显示在行-列中,并且只有当我在ng-click操作中单击时,条件才适用。

有人能帮我知道为什么会发生这种事吗?

显然angular不知道dataTables注入的HTML。在这种情况下,我使用drawCallback:中的渲染内容来$compile

withOption('drawCallback', function() {
   $scope.$apply($compile(angular.element('#tableId'))($scope))
}

其中#tableId是表的id。但总的来说,这有点混乱,imho。当我需要将特定的角度指令附加到dataTables行或列时,我会使用datatable="ng"呈现角度方式。速度较慢,但更清洁、更易于维护。