0

外部から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 を使用しています

4

1 に答える 1