Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数据服务传递到angular 5中的组件中_Javascript_Angular_Angular5_Angular Services - Fatal编程技术网

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

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,

我从api请求获取服务中的数据,但不知道如何在组件中获取这些数据?我试着用谷歌搜索,但没有找到任何解决办法

服务文件

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感谢您的帮助