2017-02-03 18 views
0

ngOnInit()メソッドでは、キャッシュからオブジェクトを探して、そのオブジェクトのクラスで定義されたメソッドを実行しようとしています。角2が文句を言うmodelClass.doSomethingは関数ではありません

それは

ngOnInit() { 
    let modelClass: ModelClass = cache.modelClass; 
    modelClass.doSomething(); 
} 

のように見え、モデルクラスの定義は

export class ModelClass{ 
    constructor(
     public property: string 
    ){} 

    doSomething(){ 
     //doing something here 
    } 
} 

のようなものですが、コンポーネントがロードされていると、そのngOnInit()メソッドが呼び出されているとき、そこにありますmodelClass.doSomething()の行にエラーがあります のようにmodelClass.doSomethingは関数ではありません。

なぜModelClassのメソッドは認識されませんでしたか?

+0

cache.modelClassをログに記録してみてください。そうでなければ、より多くの情報が必要になります –

答えて

0

この時点でcache.modelClassが定義されていますか?ヌルオブジェクトでメソッドを呼び出そうとしている可能性があります。

typescriptでは、宣言はデフォルトで公開されているため、メソッドを呼び出して公開する必要があります。

0

おそらくcache.modelClassModelClassのインスタンスを返しますが、それ以外のものは返されません。次のようなチェックを追加することができます。

let modelClass: ModelClass = cache.modelClass instanceof ModelClass ? cache.modelClass : new ModelClass(); 
関連する問題