私は自分のサイトの管理パネルを実装するためにangular4を使用しています。私は無料でインターネットからダウンロードしたテンプレートを使用しています。このテンプレートには、データを表示するデータ可能な機能があり、検索、並べ替え、改ページが可能です。この形式の読み込み機能の角度4のスクリプトタグを追加
import { Component, AfterViewChecked } from "@angular/core";
import { Script } from "../../shared/services/scriptLoader.service";
@Component({
selector: "organization-list",
templateUrl: "./organization-list.component.html"
})
export class OrganizationListComponent implements AfterViewChecked {
constructor(private script: Script) {
}
ngAfterViewChecked() {
this.script.loadScript("assets/datatables/jquery.dataTables.min.js");
this.script.loadScript("assets/datatables/dataTables.bootstrap.js");
}
}
2つのスクリプトがあります:jquery.dataTables.min.js
とjquery.dataTables.min.js
私はテーマがちょうどこのコンポーネント(ページ)にロードしたいですorganization-list.component
と呼ばれる角度成分で イム・ロードこの表。だから私はそれらを読み込むために、この関数を使用した:
import { Injectable } from '@angular/core';
declare var document: any;
@Injectable()
export class Script {
loadScript(path: string) {
//load script
return new Promise((resolve, reject) => {
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = path;
if (script.readyState) { //IE
script.onreadystatechange =() => {
if (script.readyState === "loaded" || script.readyState === "complete") {
script.onreadystatechange = null;
resolve({ loaded: true, status: 'Loaded' });
}
};
} else { //Others
script.onload =() => {
resolve({ loaded: true, status: 'Loaded' });
};
};
script.onerror = (error: any) => resolve({ loaded: false, status: 'Loaded' });
document.getElementsByTagName('head')[0].appendChild(script);
});
}
}
これは良い作品です。
<script>
$(document).ready(function() {
$('#datatable').dataTable();
});
</script>
問題は私が使用して(毎回、このページが読み込まコードのこの平和を呼びたいということです:スクリプトで私はこのようなhtmlページの最後に呼ばれなければならないのDataTableと呼ばれる関数である言及しました角度ルーティングなので、ページの読み込み負荷は完全に)。解決策は何ですか?ありがとう。
他にも多くのデータテーブルがあります。 jQueryを使用しないでください。 – Aravind
@Aravind私のテンプレートはjqueryで記述されています。私に何ができる? –
あなたのアプローチは間違っています。あなたがデータテーブルを使用する場合は、そこでコードを実行する必要があります。あなたのコードがコンポーネントに分かれていると仮定し、$( '#datatable')を呼び出します。 ngOnInitライフサイクルフックの部分。 – omeralper