ng-show在datatables列中不起作用

时间:2016-07-29 11:21:00

标签: javascript angularjs angular-datatables

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

"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操作时适用。

有人可以帮助我知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

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

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

其中#tableId是您表格的id。但总的来说这有点搞砸了,imho。当我需要附加到dataTables行或列的特定角度指令时,我使用datatable="ng"呈现角度方式。更慢但更干净和可维护。