Javascript 使用服务器端处理来压缩数据表

Javascript 使用服务器端处理来压缩数据表,javascript,angularjs,datatables,zeroclipboard,Javascript,Angularjs,Datatables,Zeroclipboard,我有AngularJS前端应用程序和PHP后端。我还使用ng clip(zeroclipboard)和带有服务器端处理的数据表。所有行都从服务器端返回,行的一个输出如下所示: "aaData": [ { "id": 287, "email": "random@email.com", "displayName": "Name Surname", "role": "Some Role", "school": "S

我有AngularJS前端应用程序和PHP后端。我还使用ng clip(zeroclipboard)和带有服务器端处理的数据表。所有行都从服务器端返回,行的一个输出如下所示:

"aaData": [
    {
        "id": 287,
        "email": "random@email.com",
        "displayName": "Name Surname",
        "role": "Some Role",
        "school": "Some school",
        "section": "Some section,
        "token": "<button class=\"btn btn-sm btn-default\" type=\"button\" clip-copy=\"'https://somesite.com/register?token=DPXpGssPzQYrkiH6Oktw9mvtw5BzWLAb '\"><i class=\"fa fa-copy\"></i></button>",
        "datetime": "06.10.2014 20:51",
        "actions": "<button class=\"btn btn-sm btn-default\" type=\"button\"><i class=\"fa fa-pencil\"></i></button>\n                                <button class=\"btn btn-sm btn-danger btn-default\" type=\"button\"><i class=\"fa fa-trash-o\"></i></button>"
    },
“aaData”:[
{
“id”:287,
“电子邮件”:random@email.com",
“显示名称”:“姓名”,
“角色”:“某个角色”,
“学校”:“一些学校”,
"节":"某节,,
“代币”:“,
“日期时间”:“06.10.2014 20:51”,
“操作”:“\n”
},
因为datatatables获取输出,ng clip插件不起作用。我不知道为什么它不起作用,但看起来数据表行是在ng clip之后加载的,这是在pageload上加载的,所以

问题是我如何重新初始化ng剪辑,使每一行的按钮都能工作,或者我如何对此进行变通

"token": "<button class=\"btn btn-sm btn-default\" type=\"button\" clip-copy=\"'https://somesite.com/register?token=DPXpGssPzQYrkiH6Oktw9mvtw5BzWLAb '\"><i class=\"fa fa-copy\"></i></button>"
“令牌”:
按钮应复制每行不同的
clip copy=“
的内容


这表明第一个按钮确实进行了复制,而datatable行中的复制按钮实际上不起作用,因为您在angular之后加载数据,它将不会编译
clip copy
指令。要强制执行此行为,您可以在表的每个
重画
上重新编译表元素

基本上,使用Datatables提供的
fnDrawCallback
选项和
$compile

.withOption('fnDrawCallback', function(table) {
  $compile(angular.element(table.nTable).contents())($scope);
})
这是您的最新信息


作为补充说明,您不必像使用
那样在HTML中显式编写任何内容,它是自动生成的。您还应该注意防止使用基于冗余数组的语法。

您可以给我一个JSFIDLE吗?正如您所看到的,表行中的复制按钮工作得并不完美。谢谢您的回答,但我不理解“基于冗余阵列的语法”"。你能解释更多吗?使用
ngAnnotate
,你可以以默认方式注入依赖项,它不会在缩小过程中中断。更多信息和关于存储的信息谢谢,我使用的是yeoman,它有ng annotate,但我对angular是新手,并且在示例中看到了这种方式,因此这意味着ng annotate将自动缩小之前添加依赖项?不,您已经设置了依赖项。它将允许您以多种方式编写注入(如自述文件中所示),并且不必担心缩小,因为它将为您处理注释