2016-11-05 103 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