我正在开发使用HTTP的Angular 7 App调用Web服务。调用Web服务后,我无法访问组件数据。
我正在使用在用户定义的服务中调用方法的组件。在服务中,我正在发出一个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}
);
}
}
}
现在,当我在login.component.ts中调用this.submitRequest时,它将在wsHandler服务中调用一个方法,该服务又在sendRequest方法中调用HTTP方法。现在,在HTTP请求从服务器获得响应之后,作为回调方法,我调用parameter.successCallback(),该方法是login.component.ts中名为loginResponse的方法。虽然,我可以使用console.log语句在函数loginResponse中接收响应,但是当我尝试使用“ this”访问方法/变量时。在下一行执行时,将引发主题行中提到的错误。
任何帮助将不胜感激。预先感谢。