getProfile()メソッドでコンソールにどのようにログされるのか分かりませんが、this.userをuserに割り当てるとjsonオブジェクトが返されません。だから、角2の結果へのクラス変数の割り当て
私がしなければ:コンソールにログインします
getProfile() {
this.userService.getPortInfo()
.then(user => {
console.log(user);
});
}
。 しかし、私はない場合:
getProfile() {
this.userService.getPortInfo()
.then(user => {
this.user = user;
});
}
、それは空の配列を返しますthis.userどこでもをCONSOLE.LOGしてみてください。私の目標は、this.userをgetProfile()の結果に割り当て、それを私のビューで使用することです。必ずしもそれをログアウトする必要はありません。
私はこの問題で私の記述を許してくれます。私はかなり新しい角度です。
export class UserService {
/**
*
* @param http
*/
constructor(public http: Http) {
}
getPortInfo() {
return this.http.get(environment.api)
.toPromise()
.then((response: Response) => response.json())
.catch(this.handleError);
}
/**
*
* @param error
* @returns {ErrorObservable<T>}
*/
private handleError(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
return Observable.throw(errMsg);
}
}
export class HomeComponent implements OnInit {
user: User[] = [];
constructor(private userService: UserService) {
}
getProfile() {
this.userService.getPortInfo()
.then(user => {
console.log(user);
});
}
ngOnInit() {
this.getProfile();
console.log(this.user);
}
_setUser(user) {
return this.user = user;
}
}
のようにコードを修正し、インポート
を含めるようになりますオペレータの操作を行い/ rxjsを使用するためにあなたを示唆しているであろうreturn this.user' – rachmatsasongko
これは動作しません:getProfile(){ this.userService.getPortInfo() .then(ユーザー=> { return this.user = user; }); } – GrassRoot
observableを試してみて、angle2があなたに指示する方法である結果を購読してください。多くの点で約束より優れています。サービスから観測可能なものを取得し、それを使用したいクラスに登録します。 –