Javascript 如何将数据服务传递到angular 5中的组件中
我从api请求获取服务中的数据,但不知道如何在组件中获取这些数据?我试着用谷歌搜索,但没有找到任何解决办法 服务文件Javascript 如何将数据服务传递到angular 5中的组件中,javascript,angular,angular5,angular-services,Javascript,Angular,Angular5,Angular Services,我从api请求获取服务中的数据,但不知道如何在组件中获取这些数据?我试着用谷歌搜索,但没有找到任何解决办法 服务文件 login(email:string, pwd:string):void{ this.loginModule.verifyEmailLogin(email, pwd, (data)=>{ console.log('user login data==>, ',data) return data; }) } login(email:string,
login(email:string, pwd:string):void{
this.loginModule.verifyEmailLogin(email, pwd, (data)=>{
console.log('user login data==>, ',data)
return data;
})
}
login(email:string, pwd:string): Observable<any>{
return this.loginModule.verifyEmailLogin(email, pwd, (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)
}
saveLoginForm() :void{
this._userAuthService.login(this.loginForm.value.userEmail, this.loginForm.value.userPwd)
.subscribe(
(data) => console.log(data),
(error) => console.log(error)
)
}
您可以创建并返回一个
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);
});
});
}
返回一个
可观察的
也可以解决问题。您可以创建并返回一个承诺
来解析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);
});
});
}
返回一个可观察的也可以解决问题。假设您的
loginModule.verifyEmailLogin
从http调用返回可观察的
服务文件
login(email:string, pwd:string):void{
this.loginModule.verifyEmailLogin(email, pwd, (data)=>{
console.log('user login data==>, ',data)
return data;
})
}
login(email:string, pwd:string): Observable<any>{
return this.loginModule.verifyEmailLogin(email, pwd, (data))
}
假设您的
loginModule.verifyEmailLogin
从http调用返回可观察的
服务文件
login(email:string, pwd:string):void{
this.loginModule.verifyEmailLogin(email, pwd, (data)=>{
console.log('user login data==>, ',data)
return data;
})
}
login(email:string, pwd:string): Observable<any>{
return this.loginModule.verifyEmailLogin(email, pwd, (data))
}
看起来你在谈论依赖注入。。。啊,你已经在用了,我的坏。。但是您没有从服务的登录方法返回任何内容,那么为什么您希望它向您发送一些值呢。理想情况下,当您在angular中进行http调用时,它会返回可观察的数据,您可以订阅这些数据并侦听组件中的更改。您需要使其可观察,以便将数据订阅到组件文件中,就像您在谈论依赖项注入一样。。。啊,你已经在用了,我的坏。。但是您没有从服务的登录方法返回任何内容,那么为什么您希望它向您发送一些值呢。理想情况下,当您在angular中进行http调用时,它返回可观察的数据,您可以订阅这些数据并监听组件中的更改。您需要使其可观察,以便将数据订阅到组件文件hi@Pengyy这对我来说很好,但还有更多的解决方案this@RohitAzad我认为您应该返回
可观察的
或承诺loginModule.verifyEmailLogin
函数。这也将使观察它的反应变得容易,也可以解决您的问题。@pendgy谢谢您的帮助hi@Pengyy这对我来说很好,但还有更多的解决方案this@RohitAzad我认为您应该在loginModule.verifyEmailLogin
函数中返回Observable
或Promise
。这也将使观察它的响应变得容易,也可以解决您的问题。@Pendgy感谢您的帮助