@Artem0071
Безработный mr. Junior

Как правильно обрабатывать параметр запроса?

Добрый день!

Проблема в том, что не могу нормально обработать параметр из роутинга.

Вот компонент:
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


В общем я запутался, вроде в компоненте все нормально, но он не видит этой переменной
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
И это вы еще даже в дебри RxJS не лезли
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы