У меня есть следующий пример:
Модель данных:
export interface SampleList {
readonly Id: number;
CompanyName: string;
Country: string;
}
Компонент:
export class AppComponent implements OnInit {
private sampleList = new SampleWrapper<SampleList>();
constructor() { }
ngOnInit() {
this.sampleList.loadData('v_ListOfCompanies');
}
}
Класс обертки:
export class SampleWrapper<T> {
public changes: T;
public original: T;
private sampleSvc: SampleService;
constructor() { }
public loadData(dbView: string) : void {
this.sampleSvc.getData<T>(dbView)
.subscribe(
data => {
this.original = data;
},
error => {
console.log(error);
}
);
}
}
Услуги:
export class SampleService {
static readonly apiUrl: string = environment.apiUrl;
constructor(private http: HttpClient) { }
getData<T>(dbView: string) : Observable<T> {
const url = `${SampleService.apiUrl}/${dbView}`;
return this.http.get<T>(url);
}
}
Сбой http-запросов, потому что sampleSvc
не определен.
ОШИБКА TypeError: «this.sampleSvc не определен»
Как я могу использовать ApiService в классе оболочки? Может кто-нибудь мне помочь? Или дайте мне несколько советов по использованию общих классов в машинописи, особенно в Angular 7?