5 votes

Angular DataTables : $(...).DataTable n'est pas une fonction

Angular Version : 6.0.4 ~ Node Version : 10.4.1 ~ NPM Version : 6.1.0

J'ai vu cette question posée à maintes reprises, mais sans réponse.

Après avoir suivi ces instructions pour installer angular-datables et en essayant d'utiliser la directive sur un tableau, comme dans le cas de leur Exemple de configuration zéro Je n'arrête pas d'obtenir cette erreur :

TypeError : $(...).DataTable n'est pas une fonction
at angular-datables.directive.js:42

Styles et scripts inclus

"styles": [
   "node_modules/bootstrap/dist/css/bootstrap.min.css",
   "node_modules/datatables.net-dt/css/jquery.dataTables.css",
   "src/styles.css"
],
"scripts": [
   "node_modules/jquery/dist/jquery.min.js",
   "node_modules/bootstrap/dist/js/bootstrap.min.js",
   "node_modules/datatables.net/js/jquery.dataTables.js"
]

Importation dans app.module.ts

import { DataTablesModule } from 'angular-datatables';

DataTablesModule est ajouté au tableau des importations.

*.component.html

<h1>View Accounts</h1>
<table class='table table-dark text-center table-striped table-hover rounded' datatable>
  <thead class='thead-dark'>
    <tr>
      <td>#</td>
      <td>Account Name</td>
    </tr>
  </thead>
  <tbody>
    <tr *ngFor='let account of db.accounts; let i = index' routerLink='/account/{{account.id}}'>
      <td>{{i+1}}</td>
      <td>{{account.accountHolder}}</td>
    </tr>
  </tbody>
</table>

6voto

Ace Points 426

L'erreur a été corrigée en actualisant les modules de mon nœud.

rm -rf node_modules/
npm cache clear
npm install

J'ai probablement installé deux versions de jQuery, réinitialisant mon instance de jQuery après que les tables de données s'y soient liées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X