Вы убиваете свой код с избыточностью. Посмотрите на это :
При использовании углового способа вы НЕ МОЖЕТЕ использовать директиву dt-column.
Действительно, модуль сделает данные доступными после того, как обещание
решена. Так что для DataTables это похоже на рендеринг статической таблицы.
Вы на самом деле используете «угловой путь» вместе с dt-columns
. Вы можете переключиться на использование DTColumnDefBuilder
, но зачем определять столбцы, если у вас уже есть раздел <thead>
? Это имеет смысл только в том случае, если вам нужно использовать сортировочные плагины и т. Д. В определенных столбцах. И / или нет указывает заголовок в разметке.
Более того, когда вы выполняете рендеринг с помощью angular, $compile
ничего не нужно, на самом деле это очень неправильно, angular уже делает это. Итак
- удалите
dt-columns
или замените его на dt-column-defs
литерал
- удалите
$compile
из createdRow
обратного вызова
Тогда это работает. Я также удалил бы атрибут ng-true-value="{{user.id}}"
. Вам нужен массив, представляющий состояние флажков, зачем устанавливать состояние user.id
, а не true или false?
vm.dtOptions = DTOptionsBuilder.newOptions()
.withPaginationType('full_numbers')
.withColumnFilter({
aoColumns: [{
}, {
type: 'text',
bRegex: true,
bSmart: true
}]
});
и
<input type="checkbox" id="user-{{ $index }}" ng-model="Ctrl.checkboxValue[user.id]" ng-click="Ctrl.checkValue(user.id)" />
Это действительно все, что вам нужно.
раздвоенный планкр -> https://plnkr.co/edit/Z82oHi0m9Uj37LcdUSEW?p=preview