ui-sref 在为数据表列生成动态内容时不起作用
ui-sref not working when generate dynamic content for datatable columns
我想 link 我的数据的一列 - table 到动态 Angularjs 视图。
Table 1 :
ID | Name | Action
1 | Jack | Edit
编辑应该是 link 到 #/clients/1/edit
/clients/:id/edit (app.client_edit) 已经创建并且正在运行。
我正在尝试以下代码:
$scope.dataTableOpt = {
"columnDefs": [
{
"targets": 0,
"render": function ( data ) {
return "<a ui-sref=\"app.client_view({id: $row[0]})\">Edit</a>";
}
}
],
'ajax': 'http://localhost/admin/clients'
};
给出的结果:
Link1 = < a ui-sref="app.client_view({'id': '1'})">edit</ a>
预期结果:
Link2 = < a ui-sref="app.client_view({id: '1'})" class="ng-scope" href="#!/client/2">edit</ a>
当我将 < a ui-sref="app.client_view({'id': '1'})">test< / a>
静态地放在页面上时,它可以正常工作,但不确定为什么它在动态生成时不起作用。
请指教
我的方式:
数据表设置选项:
"columnDefs": [
{
"targets": [0, 1],
"render": function ( data, type, row ) {
var href = $compile('<a ui-sref="stateName({id: ' + $stateParams.id + '})"></a>')($scope)[0].href;
return '<a href="' + href + '">' + data + '</a>';
}
}
]
@Abbas Moazzemi
如果如下使用.withOption('createdRow'
,则不需要使用$compile
:
.withOption('createdRow', function(row) {
// Recompiling so we can bind Angular directive to the DT
$compile(angular.element(row).contents())($scope);
})
我想 link 我的数据的一列 - table 到动态 Angularjs 视图。
Table 1 :
ID | Name | Action
1 | Jack | Edit
编辑应该是 link 到 #/clients/1/edit
/clients/:id/edit (app.client_edit) 已经创建并且正在运行。
我正在尝试以下代码:
$scope.dataTableOpt = {
"columnDefs": [
{
"targets": 0,
"render": function ( data ) {
return "<a ui-sref=\"app.client_view({id: $row[0]})\">Edit</a>";
}
}
],
'ajax': 'http://localhost/admin/clients'
};
给出的结果:
Link1 = < a ui-sref="app.client_view({'id': '1'})">edit</ a>
预期结果:
Link2 = < a ui-sref="app.client_view({id: '1'})" class="ng-scope" href="#!/client/2">edit</ a>
当我将 < a ui-sref="app.client_view({'id': '1'})">test< / a>
静态地放在页面上时,它可以正常工作,但不确定为什么它在动态生成时不起作用。
请指教
我的方式:
数据表设置选项:
"columnDefs": [
{
"targets": [0, 1],
"render": function ( data, type, row ) {
var href = $compile('<a ui-sref="stateName({id: ' + $stateParams.id + '})"></a>')($scope)[0].href;
return '<a href="' + href + '">' + data + '</a>';
}
}
]
@Abbas Moazzemi
如果如下使用.withOption('createdRow'
,则不需要使用$compile
:
.withOption('createdRow', function(row) {
// Recompiling so we can bind Angular directive to the DT
$compile(angular.element(row).contents())($scope);
})