[英]how to pass data service into components in angular 5
我正在从api请求获取服务中的数据,但没有如何在组件中获取这些数据? 我曾尝试过使用google,但未找到任何解决方案。
服务档案
login(email:string, pwd:string):void{
this.loginModule.verifyEmailLogin(email, pwd, (data)=>{
console.log('user login data==>, ',data)
return data;
})
}
在这里,我在控制台中获取了数据
组件文件js
saveLoginForm() :void{
//console.log(this.loginForm);
console.log('Saved: ' + JSON.stringify(this.loginForm.value));
this._userAuthService.login(this.loginForm.value.userEmail, this.loginForm.value.userPwd)
}
您可以创建并返回Promise
来解决this.loginModule.verifyEmailLogin
回调中的数据。
login(email:string, pwd:string): Promise<any>{
return new Promise<any>(resolve => {
this.loginModule.verifyEmailLogin(email, pwd, (data)=>{
console.log('user login data==>, ',data)
//return data;
resolve(data);
});
});
}
然后通过Promise.then
在组件上获取解析的数据
this._userAuthService.login(this.loginForm.value.userEmail, this.loginForm.value.userPwd).then(data => {
// deal anything with the data
})
返回一个Observable
也将解决问题。
假设您的loginModule.verifyEmailLogin
返回http调用中的observable
服务档案
login(email:string, pwd:string): Observable<any>{
return this.loginModule.verifyEmailLogin(email, pwd, (data))
}
组件文件js
saveLoginForm() :void{
this._userAuthService.login(this.loginForm.value.userEmail, this.loginForm.value.userPwd)
.subscribe(
(data) => console.log(data),
(error) => console.log(error)
)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.