繁体   English   中英

如何将数据服务传递给angular 5中的组件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM