Я разрабатываю приложение Angular 7, которое вызывает веб-сервисы с использованием HTTP.Я не могу получить доступ к данным компонента после вызова веб-службы.
Я использую компонент, который вызывает метод в пользовательской службе.В службе я делаю HTTP-запрос, который вызывает функцию в компоненте при успешном ответе (как функцию обратного вызова).Но неожиданно происходит то, что ни одна функция или переменная в моем компоненте не работает.
Я получаю следующую ошибку: ОШИБКА TypeError: Невозможно прочитать свойство 'pushPage' из неопределенного
Я новичокв Angular, поэтому я не могу отследить проблему в коде.
login.component.ts: submitRequest (data: any) {
this.wsHandler.execute(
{
type: this.parameterBuilder.MESSAGE_TYPE.LOGIN,
data: data,
callback: this.loginResponse,
loadingMessage: 'signing in'
});
}
loginResponse (response:any) {
if(response == null) {
}
else if(response.code != 0) {
}
else {
console.log(response);
this.utils.pushPage(['/dashboard-locations'],null);
}
}
ws-handler.service.ts:
process() {
this.sendRequest(parameter, payload.data).subscribe
(
(response:any) =>
{
parameter.successCallback(JSON.parse(response._body));
},
(error) => console.log('error is : ' + error),
() => console.log('request completed')
);
}
sendRequest(parameter, data) {
parameter.successCallback = this.utils.nullToObject(parameter.successCallback, function() {});
if(parameter.type == 'GET') {
return this.http.get(
parameter.url
)
}
else if(parameter.type == 'POST') {
return this.http.post(
parameter.url,
parameter.data,
{headers:headers}
);
}
}
}
Теперь, когда я вызываю this.submitRequest в login.component.ts, он вызывает метод в сервисе wsHandler, который, в свою очередь, вызывает методы HTTP в методе sendRequest.Теперь, когда HTTP-запрос получает ответ от сервера, в качестве метода обратного вызова я вызываю параметр parameter.successCallback (), который является методом в login.component.ts с именем loginResponse.Хотя я могу получить ответ в функции loginResponse с помощью оператора console.log, но когда я пытаюсь получить доступ к методам / переменным с помощью «this».выполняется в следующей строке, он выдает ошибку, указанную в строке темы.
Любая помощь будет высоко оценена.Заранее спасибо.