Пользовательская информация с данными в angularjs

Я использую angular и datatables вместе. Одним из моих требований является настройка информации о таблице, которая показывает количество записей. Это просто не текстовое обновление, которое я мог бы сделать, используя языковую конфигурацию datatable, но мне нужно переместить его в div вне таблицы.

Я вижу это на форуме, но не знаю, как это сделать в angularjs. Это для нумерации страниц, но я могу использовать это для .dataTables_info.

Управление разбиением на страницы за пределами datatable

 $(document).ready(function() {
     $("#example").dataTable(); 
     $("#NewPaginationContainer").append($(".dataTables_paginate"));
 });

person bumblebee    schedule 03.08.2016    source источник
comment
Использование JQuery + Angular вместе требует головной боли. Изучали ли вы использование директивы Angular, такой как следующая: ng-table.com/#   -  person Dennis    schedule 03.08.2016
comment
Я использую angularjs, а не пример кода, который я вставил сюда. Как я могу использовать в своей директиве угловую версию приведенного выше кода   -  person bumblebee    schedule 03.08.2016
comment
Давайте посмотрим на фактический код, который вы используете.   -  person davidkonrad    schedule 04.08.2016


Ответы (1)


Как указывает «Мистер Уайт», вы спрашиваете о проблемах, если используете angularjs и dataTables «способ jQuery» в одном проекте. Хотя это вполне возможно, вы столкнетесь с проблемами состязания и неработающими функциями, как только попытаетесь использовать более продвинутые функции dataTable, такие как отрисовка столбцов. Вам действительно следует рассмотреть возможность использования таблиц данных Angular, угловые директивы для jQuery dataTables.

Тогда это говорит о том, что даже если вы используете таблицы данных jQuery с директивами или без них, вам нужно будет сделать это в $timeout, а не в обратном вызове, таком как initComplete(). Иногда это не удается, поскольку angular не обязательно заканчивает свою работу, когда это делает dataTables.

Кроме того, решение, о котором вы говорите, не совсем правильное. Вы проверили ссылку в ответе? Это приводит к совершенно другому. Правильный способ будет:

$timeout(function() {
   $('.dataTables_info')  
    .detach()
    .appendTo('#NewPaginationContainer')
})   

демо -> http://plnkr.co/edit/VHYTFcng0A4w2ipJ7GX5?p=preview

В демо используются угловые таблицы данных, поэтому вы можете увидеть разницу, но даже если вы не используете директивы, вы должны использовать описанный выше подход.

person davidkonrad    schedule 04.08.2016