Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 2抱怨modelClass.doSomething不是函数_Javascript_Angular_Typescript - Fatal编程技术网

Javascript Angular 2抱怨modelClass.doSomething不是函数

Javascript Angular 2抱怨modelClass.doSomething不是函数,javascript,angular,typescript,Javascript,Angular,Typescript,在ngOnInit()方法中,我从缓存中查找对象,然后尝试执行在该对象的类中定义的方法 看起来像 ngOnInit() { let modelClass: ModelClass = cache.modelClass; modelClass.doSomething(); } 模型类的定义如下 export class ModelClass{ constructor( public property: string ){} doSomethi

ngOnInit()
方法中,我从缓存中查找对象,然后尝试执行在该对象的类中定义的方法

看起来像

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的方法没有被识别呢?

您确定在那一点上定义了
cache.ModelClass
?您可能正试图对空对象调用该方法


在typescript中,默认情况下声明是公共的,因此应该公开该方法供您调用。

很可能是
缓存。modelClass
不返回
modelClass
的实例,而是返回其他内容。您可以这样添加支票:

let modelClass: ModelClass = cache.modelClass instanceof ModelClass ? cache.modelClass : new ModelClass();

尝试记录cache和log cache.modelClass。否则,需要更多信息