2017-02-03 3 views
0

ngOnInit() 메서드에서 캐시에서 개체를 찾고 해당 개체의 클래스에 정의 된 메서드를 실행하려고합니다.각도 2 불만 modelClass.do 뭔가가 함수가 아닙니다

그것은

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

모양과 구성 요소가로드되는 그는 ngOnInit() 메소드가 호출되고,이 생길 때 모델 클래스의 정의는

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

    doSomething(){ 
     //doing something here 
    } 
} 

그러나 같다 modelClass.doSomething() 행에서 오류가 발생했습니다. modelClass.do 뭔가가 기능이 아닙니다.

ModelClass의 메소드가 인식되지 않는 이유는 무엇입니까?

+0

cache 및 log cache.modelClass를 기록하십시오. 그렇지 않으면 더 많은 정보가 필요할 것입니다. –

답변

0

그 시점에서 cache.modelClass이 확실하게 정의되어 있습니까? null 객체에서 메서드를 호출하려고 할 가능성이 있습니다.

typescript에서 선언은 기본적으로 public이므로 선언 할 수 있도록 메서드를 호출해야합니다.

0

대부분 cache.modelClassModelClass이 아닌 다른 것을 반환합니다. 다음과 같은 확인을 추가 할 수 있습니다.

let modelClass: ModelClass = cache.modelClass instanceof ModelClass ? cache.modelClass : new ModelClass(); 
관련 문제