Как ссылаться на методы вспомогательных методов, используя this из Injectable?

Injectable Class'this' ссылается на вставленный компонент this.

Хотел использовать инъекцию для абстрагирования кода от компонента. Но когда я использую 'this' для ссылки на другие методы в родительском методе в классе @Injectable, а затем пытаюсь использовать тот компонент, который он вводит.

Метод, который называется this.enclosedMethod, не работает. Ошибка: this.enclosedMethod не является функцией. Регистрация 'this' показывает, что он ссылается на класс Component, который был введен. Например

@Injectable()
export class UploaderService {

constuctor() {}

    parentMethod() {
        this.logSomething();
        const that = this;
        that.logSomething();
    }

    logSomething() {
        console.log('Testing');
    }

}


@Component()
export class AppComponent implements OnInit {

    constructor(private upload: UploaderService) {
        this.parentMethod = upload.parentMethod;
    }

    NgOnInit(): void {
       this.parentMethod(); // this.logSomething is not a function or that.logSomething is not a function 
    }

}

Вопрос: как вы используете методы в других методах в Injectable? Я рисую бланк в данный момент

1 ответ

Решение

как вы используете методы в других методах в Injectable? Я рисую бланк в данный момент

исправлять

Исправь свой this:

@Component()
export class AppComponent implements OnInit {

    constructor(private upload: UploaderService) {
        this.parentMethod = () => upload.parentMethod(); // FIXED!
    }

    NgOnInit(): void {
       this.parentMethod(); 
    }

}

Больше

Другие вопросы по тегам