使用ui路由器时如何附加数据表选项

时间:2015-01-10 13:26:01

标签: angular-ui angular-ui-router

我使用angular-datatables来格式化我的表格。我也在使用ui-routing来处理路由。

可以通过在控制器(http://l-lin.github.io/angular-datatables/#/withOptions)中将几个对象附加到$ scope来定义dataTable的格式,例如:

angular.module('datatablesSampleApp', ['datatables']).controller('withOptionsCtrl', function($scope, DTOptionsBuilder, DTColumnDefBuilder) {
     $scope.dtOptions = DTOptionsBuilder.newOptions()
        .withPaginationType('full_numbers')
        .withDisplayLength(2)
        .withDOM('pitrfl');
    $scope.dtColumnDefs = [
        DTColumnDefBuilder.newColumnDef(0).notSortable(),
        DTColumnDefBuilder.newColumnDef(1).notVisible(),
        DTColumnDefBuilder.newColumnDef(2)
    ];
});

dataTable呈现为:

<table datatable="ng" class="table table-striped table-bordered table-hover">

我的路线定义为:

.state('unclassified', {
    url: "/unclassified",
    templateUrl: "/app/documentsUnclassified/documentsunclassified.html",
    controller: 'documentUnclassifiedCtrl',
    controllerAs: 'documentsUnclassified'
}

我的问题是如何以最有效的方式执行此操作,因为我在使用ui路由器时无法访问控制器中的$ scope。

1 个答案:

答案 0 :(得分:0)

由于您使用的是controllerAs语法,因此需要使用您在路由器中设置的变量documentsUnclassified

<table datatable="ng" 
    dt-options="documentsUnclassified.dtOptions" 
    dt-column-defs="documentsUnclassified.dtColumnDefs" 
    class="table table-striped table-bordered table-hover">
</table>