【发布时间】:2018-03-08 07:29:49
【问题描述】:
使用 MongoDB、express.js、angular4、node.js
我检索的字符串很好检索,但与完整对象不同...
account.service.ts(完整,)
import { Injectable } from '@angular/core';
import { Http, Headers, Response } from '@angular/http';
import 'rxjs/Rx';
import { Observable } from 'rxjs/Observable';
const jwtDecode = require('jwt-decode');
import { User } from '../../models/user.model';
import { AuthService } from './auth.service';
@Injectable()
export class AccountService {
constructor(private http: HttpClient,
private authService: AuthService) {}
user: any[];
currentUser() {
if(this.authService.isAuthenticated()){
const token = localStorage.getItem('token');
const decoded = jwtDecode(token);
return decoded.user;
}
};
getProfile() {
const id = this.currentUser();
return this.http.get("http://localhost:3000/user/" + id).
map(
(response: Response) => {
const data = response.json();
return data;
}
)
.catch(
(error: Response) => {
console.log(error);
return Observable.throw(error.json());
}
)
}
user-profile.component.ts
export class UserProfileComponent implements OnInit {
id: string;
user: any;
constructor(private account: AccountService) {}
ngOnInit() {
this.id = this.account.currentUser();
this.user = this.account.getProfile()
.subscribe(user => {
this.user = user;
return this.user;
});
}
logUser() {
console.log(this.id);
console.log(this.user);
}
}
user-profile.component.html
<p>{{user}}</p>
<p>User with ID {{id}} Loaded</p>
<a (click)="logUser()">Log User Test</a>
HTML 文件显示:
[object Object]
User with ID 59ca916323aae527b8ec7fa2 Loaded
点击“登录用户”链接得到的是检索到的 ID 字符串和用户对象:
59ca916323aae527b8ec7fa2 [{...}] //单击它会显示对象的所有详细信息。
但是我无法完成获取这些详细信息并在 HTML 中显示它们的步骤,因为我使用 ID 成功管理...我的意思是,{{user.anything}} 不会获取用户的数据,因为它应该
我可以帮忙吗?
【问题讨论】:
-
能否请您出示完整的 AccountService 课程?
-
是的,我已经添加了完整的课程。
标签: node.js angular http typescript mean-stack