A
A
Artem00712017-02-01 21:12:58
JavaScript
Artem0071, 2017-02-01 21:12:58

How to properly handle request parameter?

Good afternoon!
The problem is that I can not process the parameter from the routing normally.
Here is the component:

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>
// Самое удивительное, что в ней все показывает верно!! Значит что то тут еже не понятно..
    }
}

There is a page
<button (click)="testMe()" class="btn btn-info">Test</button>
<p>{{Post.error.message}}</p> <!-- запрос возвращает поидее JSON {Blog: Object, error: {status: 200, message: "OK"}}, это видне если нажать на кнопку, но в этом блоке он показывать что либо отказывается! и в консоли пишет 5 ошибок! Причем если убрать этот блок, то все будет норм -->

Moreover, if you do {{Post}} , it will show [object Object], which confuses even more .. That is, it is both an object, and undefined, and the array I need ..
In the console, this is what it outputs:
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

In general, I'm confused, everything seems to be fine in the component, but it does not see this variable

Answer the question

In order to leave comments, you need to log in

1 answer(s)
_
_ _, 2017-02-01
@AMar4enko

And you haven’t even climbed into the wilds of RxJS yet

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question