2016-11-05 105 views
0

Im使用Angular2作爲前端,Sailsjs作爲後端。當用戶註冊時,我需要檢查用戶名是否已經存在。爲了做到這一點,後端將檢查數據庫後發出json響應。 JSON響應如下:檢查用戶名存在於Angular2&Sails

如果不存在

{ 
    "status": true 
} 

如果存在

{ 
    "status": false 
} 

現在我想輸出一個布爾值在寄存器angular2服務

CheckUsernameNotExist(username){ 
     return this.http.post('http://localhost:1337/userAPI/usernameExist', JSON.stringify({ username: username})) 
      .map((res: Response) => res.json()) 
      .subscribe(
      (data) => {return data.status}, 
      (error) => { 
       alert('Error getting user Details'); 
      } 
     ); 

    } 

()稱它應該與if

if(this.userservice.CheckUsernameNotExist(user.username){ 
console.log('username exist')} 

但是這段代碼不起作用。你可以幫忙嗎?

+0

在訂閱你會得到慾望數據嗎? – micronyks

+0

是的,當我把console.log(data.status)訂閱它打印真或假 –

+0

試試這個 - 「CheckUsernameNotExist(用戶名){ 返回this.http.post('http:// localhost:1337/userAPI/usernameExist ',JSON.stringify({username:username})) .map((res:Response)=> return res.json()。status) }' – micronyks

回答

0
CheckUsernameNotExist(username){ 
     return this.http.post('http://localhost:1337/userAPI/usernameExist', JSON.stringify({ username: username})) 
      .map((res: Response) =>{return res.json().status)} 
     );  
} 

register(){ 
    this.userservice.CheckUsernameNotExist(user.username).subscribe(data=>{ 
     if(data){ //<<<< here you'll have true or false 
      //do something 
     }else{ 
      //do something 
     } 
    }) 
    console.log('username exist')} 
} 
+0

謝謝micronyks。這工作。 –

+0

不客氣! – micronyks