Я начинаю изучать угловое2, и у меня есть проблема. Существует некоторый классAngular2. Невозможно установить свойство класса
export class UserComponent {
user: User;
errorMessage: string;
constructor(
private usersService: UsersService,
private route: ActivatedRoute
) {
let id = +route.params._value.id;
this.usersService.getUser(id).subscribe(
user => this.user = user,
error => this.errorMessage = <any>error
);
console.log(this);
}
Я могу видеть свойство «пользователь» в консоли, но не «ErrorMessage». http://screen.mindklab.com/incoming/82c673e18ae8f89d7c6175a57c33.png
Если я изменю console.log (this) на console.log (this.user), я получаю «undefined» в консоли. Почему класс «собственная собственность» не изменяется? Из-за этого я не могу использовать «пользователь» в шаблоне
это класс обслуживания:
@Injectable()
export class UsersService {
private usersUrl = 'http://gye.hz/component/chart/fixscripts?task=';
constructor(private http: Http) {}
getUsers(): Observable<User[]> {
return this.http
.get(this.usersUrl+'getUsers')
.map((r: Response) => r.json().data);
}
getUser(id: number): Observable<User> {
return this.http
.get(this.usersUrl+'getUser&id='+id)
.map((r: Response) => r.json().data);
}
saveUser(user: User): Observable<User> {
let body = JSON.stringify(user);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http
.post(this.usersUrl+'saveUser', body, options)
.map((r: Response) => r.json().data);
}
}
служба возвращает необходимые данные (это показано в консоли), но это не написано в собственность
добавить код обслуживания пожалуйста. – Sefa
не имеет отношения к вашему вопросу, но вы не должны делать вызов службы внутри своих конструкторов. – vidalsasoon
Я пытался сделать вызов из ngOnInit() {}. Результат тот же –