Хорошо, поэтому я новичок в 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. Любая помощь, я бы очень признателен.
В итоге я добавил тайм-аут благодаря @Kevin F, который дал мне идею загрузить его после загрузки.