2017-06-21 21 views
0

我在點擊按鈕時調用以下功能。如何在Iconic2中使用服務中的API調用

login.ts

public login() { 
this.showLoading() 

this.http.get('http://laravel.dev/test').map(res => res).subscribe(data => { 
    console.log(data) 
}, 
    error => { 
    this.showError(error); 
    }); 
} 

我想要什麼,這個API調用應該從服務文件中來。由於我是Ionic 2的新手,這就是爲什麼我無法獲得如何通過服務調用上述API並在login.ts中收到它。

auth.service.ts

public login(credentials) { 
     // Here I want to call Above API and return it to the `login.ts` 
} 

請幫助我。

回答

1

http.get請求是一個Observable。您可以從服務中返回觀察值並在組件/頁面中進行訂閱。

auth.service.ts

public login(credentials) { 
    return this.http.get('http://laravel.dev/test').map(res => res.json()) 
} 

map功能json響應假設你的HTTP返回JSON解碼之後返回數據。

login.ts

public login() { 
this.showLoading() 

this.authService.login(credentials).subscribe(data => { 
    console.log(data) 
}, 
    error => { 
    this.showError(error); 
    }, 
()=>this.dismissLoading()); 
} 

通過在組件構造注入的服務和訂閱登錄功能。

+0

Worked.Thanks @ SURAJ – Mohammed

+0

我想問一件事是,我如何發送我在服務方法的參數收到符合API'this.http.get('http://laravel.dev/憑據測試')。map(res => res.json())',以便我可以在後端接收它。 @suraj – Mohammed

+1

取決於你如何接收它..我建議你使用'this.http.post'發送正文 –

相關問題