Аурелия с ошибка использования библиотеки 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 3

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';