Javascript ng显示在datatables列中不工作
我正在使用datatables在angular中创建一个表。我使用了范围中的一个值,并将该值与接收到的数据进行比较Javascript ng显示在datatables列中不工作,javascript,angularjs,angular-datatables,Javascript,Angularjs,Angular Datatables,我正在使用datatables在angular中创建一个表。我使用了范围中的一个值,并将该值与接收到的数据进行比较 "columns": [{ data: null, render: function ( data, type, row ) { var roleid =angular.element('#TextkeysController').scope().currentRole; return '<p ng-show="'+data.id+' == '+roleid+'" class
"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"}]
“列”:[{data:null,render:function(数据,类型,行){
var roleid=angular.element('#TextkeysController').scope().currentRole;
return“已连接未连接;
},名称:'连接',“类名”:“中心”}]
当我加载数据时,这两个按钮都会出现在行-列中,并且仅当我在ng click操作中单击时,该条件才适用
有人能帮我知道为什么会发生这种情况吗?显然angular不知道dataTables注入的HTML。在这种情况下,我使用
$compile
在drawCallback中编译呈现的内容
:
withOption('drawCallback', function() {
$scope.$apply($compile(angular.element('#tableId'))($scope))
}
其中
#tableId
是表的id
。但总的来说这有点混乱,伊姆霍。当我需要将特定角度指令附加到dataTables行或列时,我使用datatable=“ng”
呈现角度方式。速度较慢,但更干净,更易于维护 我应该将With选项添加到datatables javascript文件或控制器中吗?嘿@jValls我猜您正在使用angular datatables(这就是我重新标记的原因)-以上是angular datatables的方式,我强烈推荐。如果您使用的是没有指令的jQuery数据表,那么应该包括。我已经解决了直接添加条件而不使用ng show的问题。不过谢谢你的帮助。@jValls,好的,谢谢你的投票!事实上,我会建议您,这个小的标记片段表明您可以通过一个简单的三元组来完成,但不能确定,因为roleid
可能会动态更改,这就是重点所在?但是我在很多项目中大量使用数据表和角度数据表,我会说:单击事件,转到数据表渲染。如果您确实需要角度指令,例如,我经常使用ng class
,其中$scope
变量决定类,请转到datatable=“ng”
查看@jValls anychance您能发布解决方案吗?