外部からangular2サービスのメソッドを呼び出し、そのメソッドから同じクラスの他のメソッドを呼び出すか、コンストラクトで初期化された変数にアクセスしたい。
ngZone を使用して、外部からメソッドにアクセスできるようにしています。私のクラスは次のようになります。
var Component1 = ng.core.Class({
constructor:[ng.core.NgZone, function(_ngZone) {
window.Component = {
onCallFromOutside: this.onCallFromOutside,
zone: _ngZone
};
this.some_var = "AAA";
}],
onCallFromOutside: function(){
console.log("Called onCallFromOutside")
console.log(this.some_var) // This is null
this.inisdeCall() // Here I get error: EXCEPTION: TypeError: this.inisdeCall is not a function
}
inisdeCall: function(){
console.log("Called inisdeCall")
}
})
そして、このメソッドを次のように外部から呼び出します。
window.Component.zone.run(function(){
window.Component.onCallFromOutside(e);
})
そして、これは私が得るエラーです:
EXCEPTION: TypeError: this.inisdeCall is not a function
プレーンな JavaScript で angular2 を使用しています