Включая JQuery DataTable на угловой с простым HTML-шаблоном - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть шаблон, который использует bootstrap и HTML5, который не был создан для angular, но который я пытаюсь адаптировать к angular.

В моем файле angular.json есть следующие строки:

"styles": [
  "src/styles.css",
  "src/assets/fonts/icomoon/icomoon.css",
  "src/assets/vendor/circliful/circliful.css",
  "src/assets/vendor/c3/c3.min.css",
  "src/assets/css/bootstrap.min.css",
  "src/assets/css/main.css"
],
"scripts": [
  "src/assets/js/jquery.js",
  "src/assets/js/bootstrap.min.js",
  "src/assets/js/popper.min.js",
  "src/assets/vendor/slimscroll/slimscroll.min.js",
  "src/assets/vendor/slimscroll/custom-scrollbar.js",
  "src/assets/vendor/circliful/circliful.min.js",
  "src/assets/vendor/circliful/circliful.custom.js",
  "src/assets/vendor/peity/peity.min.js",
  "src/assets/vendor/peity/custom-peity.js",
  "src/assets/vendor/d3/d3.min.js",
  "src/assets/vendor/c3/c3.min.js",
  "src/assets/vendor/c3/custom/bar-graph-one.js",
  "src/assets/js/common.js"
]

Каждый файл assets взят из этого шаблона.Теперь мне нужно вставить таблицу данных jquery в мой home.component.html, поэтому я установил таблицы данных с помощью npm:

npm install datatables.net --save
npm install datatables.net-bs4 --save

И после этого я вставил этот код в файл home.component.ts:

import 'datatables.net';
import 'datatables.net-bs4';

declare var $ :any;
...
@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

  //for jquery datatable
  datatable: any;

  constructor(private service: HomeService, private sanitizer: DomSanitizer) {
  }


  ngOnInit() {
      const table: any = $('#notas-table');
      this.datatable = table.DataTable();
  }
}

Теперь, после загрузки страницы, я получил эту ошибку:

ОШИБКА TypeError: table.DataTable не является функцией

Просмотр vendor.js файлаесть данные:

/***/ "./node_modules/datatables.net/js/jquery.dataTables.js":
/*!*************************************************************!*\
  !*** ./node_modules/datatables.net/js/jquery.dataTables.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

Я пытался поместить его в AfterViewInit, но я получаю ту же ошибку:

  ngAfterViewInit(): void {
    const table: any = $('#notas-table');
    this.datatable = table.DataTable();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...