如何使用 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();
}
}
更多
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();
}
}