如何使用'这个'来引用辅助方法方法。来自注射?

时间:2017-10-06 05:09:04

标签: angular typescript injectable

一个可注射的课程'这个'正在引用注入的组件。

想要使用injectable从组件中抽象代码。但是,当我使用'这个'引用@Injectable类中父方法中的其他方法,然后尝试使用它注入的组件。

方法thas被称为this.enclosedMethod不起作用。错误:this.enclosedMethod不是函数。记录这个'表明它引用了已注入的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 个答案:

答案 0 :(得分:0)

  

如何在Injectable中使用其他方法中的方法?我现在正在画一个空白

修复

修正您的this

@Component()
export class AppComponent implements OnInit {

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

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

}

更多