Аурелия с ошибка использования библиотеки jQuery объекты DataTable
У меня возникли проблемы с использованием jQuery datatables с Aurelia. Я пытаюсь импортировать таблицы данных, но безуспешно. Когда я пытаюсь его инициализировать, он выдает ошибку
Необработанный отказ от обещания TypeError: $(...).dataTable не является функцией (...)
Мой код машинописи следующий:
import * as $ from 'jquery';
import * as dataTable from 'datatables';
export class App {
router: Router;
constructor() {}
attached() {
$('#example').dataTable({
"paginate": true,
"pageLength": 25
});
}
activate() {
console.log("app.activate");
}....
Какие-нибудь указатели? Ура:)
2 ответа:
У вас есть пара проблем, которые будут вызывать головную боль для вас.
Во-первых, jQuery экспортирует переменную по умолчанию $. Таким образом, вы можете сделать следующее, чтобы импортировать jQuery внутри ViewModel:
import 'jquery';
Во-вторых, плагин DataTables расширяет прототип библиотеки jQuery, чтобы добавить себя к объекту jQuery. Поэтому, чтобы это сработало, вам нужно сначала включить jQuery, а затем плагин DataTables.
Я не смог увидеть экспорт по умолчанию для использования на стороне клиента, так что это должно дать вам следующий и, надеюсь, функциональный код:
import 'jquery'; import 'datatables';
Если я не упустил какую-то конкретную деталь, я считаю, что это должно решить проблему. Если нет, то опустите комментарий ниже, и мы разберем его в любом случае.
[решено] я получил его работу, инициализировав datatable в методе activate() и оставив мой импорт таким, как он есть...
activate() { datatable(); console.log("app.activate"); }....
Попробовал немного дальше, обнаружил, что это тоже работает...
import * as $ from 'jquery'; import "datatables"; //import * as dataTable from "datatable"; export class DatatablesExample { //activate() { // dataTable(); //} attached() { $('#example').dataTable(); } }
Аниме Моя проблема была импортировать библиотеку jQuery. Но мне интересно, почему рекомендуемый импорт не работает для jquery...
Импорт $ из 'jquery';