我是处理Angle 2的新手我已经开发了一个服务REST API,它返回一个JSON字符串。这使得请求是以下代码:
.h-ruler-first-line, .h-ruler-second-line {
width: calc(50% - 15px);
margin: 12px 0;
height: 1px;
background-color: #373737;
display: inline-block;
vertical-align: middle;
}
以下代码是一个简单的登录,没有更多,但不是因为authenticatedUserList原因是NULL并且它的属性是obiamen。
getUsuaris(): Promise<Usuari> {
return this.http.get(this.URLUsuaris)
.toPromise()
.then(response => response.json().data as Usuari[])
.catch(this.handleError);
}
使用REST API的服务器正确返回信息!
发送API的用户类:
private URLUsuaris = 'http://localhost:50541/api/Usuaris';
constructor(
private _logger: Logger,
private _router: Router,
private http: Http) { }
logIn(usuari: Usuari) {
var authenticatedUserList: Promise<Usuari> = this.getUsuaris();
var authenticatedUser: Usuari;
this._logger.log(authenticatedUserList[0]);
for (var i in authenticatedUserList) {
if (authenticatedUserList[i].usuari === usuari.Usuari1) {
authenticatedUser = authenticatedUserList[i];
break;
}
}
if (authenticatedUser && authenticatedUser.Password === usuari.Password){
localStorage.setItem("usuari", authenticatedUser.Usuari1);
this._router.navigate(['Home']);
this._logger.log(localStorage.getItem("usuari"));
this._logger.log('Usuari Registart!');
return true;
}
this._logger.log('Usuari No Registart!');
return false;
}
如果您知道可能会失败的解释,请不要在将来遇到同样的错误。
非常感谢!!
答案 0 :(得分:0)
你需要像这样使用承诺的回报:
private URLUsuaris = 'http://localhost:50541/api/Usuaris';
constructor(
private _logger: Logger,
private _router: Router,
private http: Http) { }
logIn(usuari: Usuari) {
return this.getUsuaris().then((authenticatedUserList)=>{
var authenticatedUser: Usuari;
this._logger.log(authenticatedUserList[0]);
for (var i in authenticatedUserList) {
if (authenticatedUserList[i].usuari === usuari.Usuari1) {
authenticatedUser = authenticatedUserList[i];
break;
}
}
if (authenticatedUser && authenticatedUser.Password === usuari.Password){
localStorage.setItem("usuari", authenticatedUser.Usuari1);
this._router.navigate(['Home']);
this._logger.log(localStorage.getItem("usuari"));
this._logger.log('Usuari Registart!');
return true;
}
this._logger.log('Usuari No Registart!');
return false;
});
}
这也改变了logIn方法的返回,现在它返回Promise<boolean>
而不是boolean
。