Мне нужно передать метод моего сервиса в качестве параметра.Структура папки выглядит следующим образом:
-app.module.ts
- МОДУЛЬ
| ___ main_component
- ОБЩИЙ МОДУЛЬ
| ___ shared_component
| ___ shared_service
Мой shared_service содержит только один метод и выглядит так:
@Injectable({providedIn: 'root'})
export class SharedService
{
methodUrl = "some_http_url";
constructor(private http: HttpClient)
{
}
getStatuses() : Observable<any>
{
return this.http.get<any>(this.methodUrl);
}
}
В моем main_component я создаю объект с именем data с функцией в качестве параметра
createData(){
this.data = this.SharedService.getStatuses.bind(this);
}
и передать эти данные в мой shared_component как параметр @Input ().
И когда я пытаюсь вызвать его из моего ngOnOnit ()
export class SharedComponent implements OnInit{
@Input()
data: any;
result: any;
constructor() {}
ngOnOnit(){
this.data.subscribe((response) => this.result = response)
}
}
в консоли появляется сообщение об ошибке «TypeError: Cannot read свойство« get »of undefined».Я понял, что эта ошибка относится к return this.http.get (this.methodUrl); из-за неопределенности HttpClient.
Кто-нибудь сталкивался с этой ошибкой раньше и мог поделиться знаниямиоб этом?