Как ссылаться на методы вспомогательных методов, используя 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();
}
}
Больше
- Некоторые документы https://basarat.gitbooks.io/typescript/docs/arrow-functions.html