ОШИБКА TypeError: Невозможно прочитать свойство '' из неопределенного - PullRequest
0 голосов
/ 23 января 2019

Я разрабатываю приложение 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».выполняется в следующей строке, он выдает ошибку, указанную в строке темы.

Любая помощь будет высоко оценена.Заранее спасибо.

...