Мне нужен совет относительно использования jQuery DataTables с Aurelia. В основном я столкнулся с двумя проблемами.Использование jQuery DataTables с Aurelia
- Невозможно определить наилучший способ его инициализации ПОСЛЕ завершения цикла привязки
repeat.for
. По-видимому, этот цикл все еще работает даже после того, как запущен жизненный циклattached()
. - Если я использую метод
$(myRef).DataTables(data: myArray)
для заполнения таблицы и вставляю ссылки (<a href-route=... click.delegate=...>
) в эту таблицу, Aurelia, похоже, не распознает ссылки или не активирует маршрутизатор.
Задача 1: Вот моя попытка заполнить таблицу, используя Аурелии связывания. Aurelia правильно делает таблицу, и я могу просто подождать 2-3 секунды, а затем загрузить DataTables, но это неправильный путь. У меня нет окончательного события, чтобы вызвать загрузку класса DataTables, потому что я не знаю, когда repeat.for будет завершен.
<div class="table-responsive">
<table ref="tblUserList" class="table table-condensed table-hover table-striped" width="100%">
<thead>
<tr>
<th><span t="Username"></span></th>
<th><span t="First_name"></span></th>
<th><span t="Last_name"></span></th>
</tr>
</thead>
<tbody>
<tr repeat.for="record of records">
<td><a route-href="route: user; params.bind: {id: record.user_id}" click.delegate="$parent.select(record)">${record.user_username}</a></td>
<td>${record.p_fname}</td>
<td>${record.p_lname}</td>
</tr>
</tbody>
</table>
</div>
Задача 2: Вот моя попытка заполнить таблицу с помощью метода JQuery. DataTables успешно загружает таблицу, но Aurelia не распознает ссылки или действие триггера.
$(this.tblUserList).dataTable({
"paginate": true,
"pageLength": 10,
data: this.records,
columns: [
{ data: 'user_username',
fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
$(nTd).html("<a route-href='route: user; params.bind: {id:" + oData.user_id + "}' click.delegate='$parent.select(" + oData.user_id + ")'>" + oData.user_username + "</a>");
}
},
{ data: 'p_fname' },
{ data: 'p_lname' }
]
});
Может ли кто-нибудь помочь мне решить любую из вышеуказанных проблем? Или ... я подхожу к этой проблеме не так? Лучше ли использовать метод jQuery для заполнения или цикл привязки Aurelia repeat.for
?
Возможно, одна из ваших проблем заключается в том, что цикл 'repeat.for' никогда не завершен _actually_. Он привязан к вашей переменной 'records' и поэтому будет обновляться всякий раз, когда это обновление. Я немного смущен, когда речь идет о вашей проблеме. Является ли Aurelia правильным создание таблицы, но jQuery никогда не инициализирует 'dataTable()' на нем? – Tom
Aurelia правильно создает таблицу, и если я добавлю 'window.setInterval (initTable(), 2000)', чтобы добавить 2-секундную задержку, она правильно вставлена. – LStarky
Привет, возможно, вы можете попробовать загрузить данные с помощью ajax https://datatables.net/examples/ajax/objects.html. Позже я посмотрю на ваш пример –