내 angular2 프로젝트에는 DataService 클래스가 있습니다. DataService.await.get () 및 DataService.await.put ()을 갖고 싶지만 해당 메서드 내에서 올바른 'this'를 얻는 데 문제가 있습니다.
이것이 내가 가진 것입니다.
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { ReplaySubject } from 'rxjs/ReplaySubject';
@Injectable()
export class DataService {
public await = {
get(req): Observable<any> {
return this.getIt(req); // I need 'this' to be the DataService
},
put(req, data): boolean {
return this.putIt(req, data); // I need 'this' to be the DataService
}
constructor() {}
private getIt(req: string): Observable<any> {
return new ReplaySubject(1).AsObservable();
}
private putIt(req: string, data: any): boolean {
return true;
}
}
함수 내의 함수에 대해 화살표 함수를 사용하는 몇 가지 예제를 보았지만 개체 내의 함수에는 사용하지 않았습니다. 'this'를 클래스에 대한 참조로 만들려면 어떻게해야합니까?
나는 결국 화살표를 사용하여 해결할 수 있었고, 이번에는 get 대신 get =으로 시도했습니다.
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { ReplaySubject } from 'rxjs/ReplaySubject';
@Injectable()
export class DataService {
public await = {
get: (req): Observable<any> => {
return this.getIt(req); // I need 'this' to be the DataService
},
put: (req, data): boolean => {
return this.putIt(req, data); // I need 'this' to be the DataService
}
constructor() {}
private getIt(req: string): Observable<any> {
return new ReplaySubject(1).AsObservable();
}
private putIt(req: string, data: any): boolean {
return true;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다