如何使用 Injectable 中的 'this' 引用辅助方法方法?

How to reference helper methods methods using 'this' from an Injectable?

Injectable Class 的 'this' 正在引用注入组件的 this。

想使用可注入的方式从组件中提取代码。但是当我使用 'this' 在 @Injectable class 的父方法中引用其他方法,然后尝试使用它被注入的组件时。

被称为this.enclosedMethod的方法不起作用。错误:this.enclosedMethod 不是函数。记录 'this' 表明它引用了已注入的组件 class。例如

@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中使用其他方法中的方法?我现在画的是空白

how do you use methods in other methods in an Injectable? I am drawing a blank at the moment

修复

修正你的 this :

@Component()
export class AppComponent implements OnInit {

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

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

}

更多