AngularJS Datatable показывает отсутствие данных в таблице

0

Хорошо, поэтому я новичок в AngularJS, но не новичок в кодировании. По большей части я все понимал с помощью Angular, но за последние несколько дней я застрял на одном. Я вытаскиваю свои волосы. Надеюсь, один из вас может сказать мне, что я делаю неправильно.

Я использую AngularJS и JQuery Datatables. Загрузка данных с контроллера просто прекрасна, даже показывает ее как строку, но она выше JQuery Box... внутри JQuery Box это говорит мне "Нет данных". Также показано, что от 0 до 0 из 0 записей, хотя 1 строка должен появиться.

Вот как выглядит HTML-код, похожий на таблицу:

<table ng-if="ConductorTypes" class="table table-striped table-hover" datatable-setup id="ConductorTypes" cellspacing="0" width="100%">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>
                    <tr data-ng-repeat="conductorType in ConductorTypes">
                        <td>
                            {{ conductorType.id }}
                        </td>
                        <td>
                            {{ conductorType.name }}
                        </td>
                        <td></td>
                    </tr>
                </tbody>
</table>

Мой контроллер выглядит так:

'use strict';
app.controller('ConductorTypesController', ['$scope', 'stagingService', function ($scope, stagingService) {

    $scope.ConductorTypes = [];

    stagingService.getConductorTypes().then(function (results) {

        $scope.ConductorTypes = results.data;

    }, function (error) {
        alert(error.data.message);
    });

}]);

Теперь я также настраиваю директиву и выглядит так:

app.directive('datatableSetup', function () {
        return {
            restrict: 'E, A, C',
            link: function (scope, element, attrs) {
                var table = element.dataTable({
                    "aoColumnDefs": [{
                        'bSortable': true,
                        'aTargets': [-1]
                    }],
                    "oLanguage": {
                        "oPaginate": {
                            "sPrevious": "Previous",
                            "sNext": "Next"
                        }
                    },
                    "iDisplayLength": 10,
                    "aLengthMenu": [
                      [5, 10, 25, 50, -1],
                      [5, 10, 25, 50, "All"]
                    ],
                    "sDom": '<"dt-panelmenu testbutton"><"dt-panelmenu clearfix"Tfr>t<"dt-panelfooter clearfix"ip>',
                    "oTableTools": {
                        "sSwfPath": "http://cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf"
                    }
                });
            }
        }
    }
);

Что я делаю не так? Почему это не заполняет JQuery Datatable. Любая помощь, я бы очень признателен.

Теги:
datatables

1 ответ

0
Лучший ответ

В итоге я добавил тайм-аут благодаря @Kevin F, который дал мне идею загрузить его после загрузки.

  • 1
    где добавить время ожидания? вы можете обновить ответ с рабочим кодом?
  • 0
    @query `$ scope. $ on ('$ viewContentLoaded', function (event) {if ($ state.current.name == 'tables') {// delay $ timeout (function () {$ scope.getDataTable () ;}, 900);}}); `Надеюсь, это поможет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню