この質問は重複しています。私はまだWeb上に適切な解決策を見つけることができなかったので、私はここに投稿しています。Angular2 Call External JS fileコンポーネント内の機能
私はアンギュラ2にコンポーネントを作成しています。私は外部のjsファイルを持っていて、動的にロードしています。外部のjsファイルで、私はパラメータを持つ関数を持っています。 ngAfterViewInit
の中でどのようにそのパラメータを呼び出すことができますか?私は2角度に新しいですので、角度2 typescriptです内のjs関数を呼び出す方法がわからない、私はあなたの参照のための私のコードを掲載します
app.component.ts
import { Component, OnInit, ElementRef,AfterViewInit } from '@angular/core';
declare var $:any;
@Component({
selector: 'app-root',
template: '<div></div>'
})
export class AppComponent implements AfterViewInit {
urlinput;
constructor(elRef: ElementRef){
this.urlinput = elRef.nativeElement.getAttribute('urlinput');
this.loadScript();
}
ngAfterViewInit() {
// need to call the js function here
//tried like this initializeDataTable(this.urlinput) not worked
}
loadScript() {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "app/Message.js";
head.appendChild(script);
}
}
Message.js(外部JSファイル)
function initializeDataTable(dTableURL){
$.ajax({
"url": dTableURL,
"success": function(json) {
var tableHeaders;
$.each(json.columns, function(i, val){
tableHeaders += "<th>" + val + "</th>";
});
$("#tableDiv").empty();
$("#tableDiv").append('<table id="displayTable" class="display" cellspacing="0" width="100%"><thead><tr>' + tableHeaders + '</tr></thead></table>');
$('#displayTable').dataTable(json);
},
"dataType": "json"
});
}
index.htmlを
<app-root urlinput="app/array.txt">Loading...</app-root>
この問題を解決するのを手伝ってください。
はあなたが私はあなたがある与えた –
申し訳ありませんが動作しない –
質問のリンクを取得することはできませんが、プロパティtypescriptです道のために自分のコードを修正してくださいすることができます:あなたのスクリプトで
n関連性があります。.tsファイルから.tsファイルへのインポートではなく、2つの.tsファイルから関数をインポートすることです。ご理解ください。 –