Добрый день!
Проблема в том, что не могу нормально обработать параметр из роутинга.
Вот компонент:
import { Component, OnInit} from '@angular/core';
import { ActivatedRoute} from '@angular/router';
import { Response} from '@angular/http';
import { HttpService} from '../../services/http.service';
@Component({
moduleId: module.id,
selector: 'item-info',
templateUrl: 'post.component.html',
providers: [HttpService]
})
export class PostComponent implements OnInit {
id;
Post;
constructor(private activateRoute: ActivatedRoute,private httpService: HttpService){
this.id = activateRoute.snapshot.params['id'];
console.log(this.id); // Здесь при загрузке все показывает нормально
}
ngOnInit(){
console.log(this.id); //здесь передается все правильно
this.httpService.getOnePost(this.id).subscribe((data: Response) => this.Post=data.json()); // Вот здесь начинется жуть. По идее запрос выполняется правильно (нет)
console.log(this.Post); // Вот здесь начинает виднется подстава (в консоли выводит undefined)
// то есть по-идее в this.Post у нас пусто, но нет!
}
testMe(){
console.log(this.Post) // на страница есть кнопка <button (click)="testMe()">Test</button>
// Самое удивительное, что в ней все показывает верно!! Значит что то тут еже не понятно..
}
}
Есть страница
<button (click)="testMe()" class="btn btn-info">Test</button>
<p>{{Post.error.message}}</p> <!-- запрос возвращает поидее JSON {Blog: Object, error: {status: 200, message: "OK"}}, это видне если нажать на кнопку, но в этом блоке он показывать что либо отказывается! и в консоли пишет 5 ошибок! Причем если убрать этот блок, то все будет норм -->
Причем если сделать {{Post}} , то будет показывать [object Object], что еще больше путает.. То есть это и объект, и undefinded, и нужный мне массив..
В консоли вот что выдает:
handleError — core.umd.js:3462 EXCEPTION: Uncaught (in promise): Error: Error in http://localhost:3000/app/pages/post/post.component.html:1:3 caused by: undefined is not an object (evaluating
В общем я запутался, вроде в компоненте все нормально, но он не видит этой переменной