在Angular Js的Datatable中设置fontawesome图标DTColumnBuilder

时间:2017-08-16 06:43:17

标签: javascript angularjs angular-datatables

我使用DTColumnBuilder将Json数据显示到datatable中。所以现在我能够将数据显示在列的每一行中。但是我想在列的每一行中设置一个字体真棒图标。

控制器:

angular.module('app.example').controller('xyz', function ($scope,$http,$state, $stateParams,Rh,DTOptionsBuilder,DTColumnBuilder,DTColumnDefBuilder) {

  this.standardOptions = DTOptionsBuilder

  .fromFnPromise(Rl.all('abc/main/logic').getList())
  //Add Bootstrap compatibility
  .withDOM("<'dt-toolbar'<'col-xs-12 col-sm-6'f><'col-sm-6 col-xs-12 hidden-xs'l>r>" +
  "t" +
  "<'dt-toolbar-footer'<'col-sm-6 col-xs-12 hidden-xs'i><'col-xs-12 col-sm-6'p>>")
  .withBootstrap();
  this.standardColumns = [
    DTColumnBuilder.newColumn('msg.firstName'),
    DTColumnBuilder.newColumn('msg.lastName'),   

  ];

});

HTML

<table datatable dt-options="datatables.standardOptions" dt-columns="datatables.standardColumns" class="table table-striped table-bordered table-hover" width="100%">
    <thead>
        <tr>
            <th>First Name</th>
            <th>Last Name</th>                    
        </tr>
    </thead>
</table>

我想在列中添加font-awesome图标。

DTColumnBuilder.newColumn('fontawesome-icon'),
<th>Action</th>    

我看过一个链接,但我没弄错。 How to combine data and show image in angular datatable。因为我只想使用font-awesome。

<i class="fa fa-refresh" aria-hidden="true"></i>

我有一个功能但是我无法调用此功能

function action(data) {  
  return $sce.trustAsHtml('<i class="fa fa-fw fa-folder-open-o"> </i>');
}

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用renderWith

DTColumnBuilder.newColumn('msg.lastName')
  .renderWith(function(data, type, full, meta) {
     return '<i class="fa fa-refresh" aria-hidden="true"></i>'
   }) 

将呈现HTML。有关详细信息,请参阅https://datatables.net/reference/option/columns.render

示例 - &gt;的 http://plnkr.co/edit/NZSFrdeCAObbRjCAa7Vi?p=preview

如果您需要将指令附加到返回的HTML,请使用createdCell$compile

.withOption('createdCell', function(cell, cellData, rowData, rowIndex, colIndex) {
   $compile(cell)($scope)
})