2017-02-03 3 views
0

В методе ngOnInit() я ищу объект из кеша, а затем попытаюсь выполнить метод, определенный в классе этого объекта.Угловой 2 жалуется modelClass.doЧто-то не является функцией

Похоже

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

и определение класса модели, как

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

    doSomething(){ 
     //doing something here 
    } 
} 

Но когда компонент загружается и его ngOnInit() метод в настоящее время вызывается, есть ошибка в строке modelClass.doSomething() как modelClass.doЧто-то не является функцией.

Почему метод ModelClass не распознается?

+0

Попробуйте зарегистрировать кеш и журнал cache.modelClass. в противном случае потребуется дополнительная информация –

ответ

0

Вы уверены, что cache.modelClass определен в этой точке? Возможно, вы пытаетесь вызвать метод на нулевом объекте.

В машинописных объявлениях декларации общедоступны по умолчанию, поэтому для вызова должен быть открыт метод.

0

Скорее всего, cache.modelClass не возвращает экземпляр ModelClass, а что-то еще. Вы можете добавить проверку следующим образом:

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