Как прикрепить опции datatables при использовании пользовательского интерфейса роутера

Я использую angular-datatables для форматирования моих таблиц. Я также использую UI-маршрутизацию для обработки маршрутизации.

Можно определить форматирование dataTable, прикрепив пару объектов к $scope в контроллере ( http://l-lin.github.io/angular-datatables/), например:

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'
}

Мой вопрос заключается в том, как я могу сделать это наиболее эффективным способом, поскольку у меня нет доступа к $scope в контроллере, когда я использую маршрутизатор пользовательского интерфейса.

1 ответ

Поскольку вы используете controllerAs синтаксис, вам нужно использовать переменную documentsUnclassified Вы устанавливаете в своем роутере в HTML:

<table datatable="ng" 
    dt-options="documentsUnclassified.dtOptions" 
    dt-column-defs="documentsUnclassified.dtColumnDefs" 
    class="table table-striped table-bordered table-hover">
</table>
Другие вопросы по тегам