Return only one object at a time from http get JSON

0

As I do to instead of the array of all questions, I came up one question at a time in my form: Given my service:

import { Injectable } from '@angular/core';
import { Pergunta } from './perguntas/pergunta.model'
import { PerguntasComponent } from './perguntas/perguntas.component'
import { Http} from '@angular/http'
import { Observable } from 'rxjs/Observable'
import 'rxjs/add/operator/map'

import { MEAT_API} from '../app.api'


@Injectable()
export class PerguntasService{

  constructor(private http:Http){}

    perguntas(): Observable<Pergunta[]>{
      return this.http.get('${MEAT_API}/perguntas')
      .map( response => response.json())

    }
    //retorna uma pergunta só, por id
    perguntasById(id:string):Observable<Pergunta>{
       return this.http.get('${MEAT_API}/perguntas/${id}')
       .map( response => response.json())

     }

}

Here I return my array of questions all at once:

<section class="content">
  <div class="row">
          <div *ngFor="let pergunta of perguntas" class="col-sm-6 col-xs-12">
              <app-pergunta [pergunta]="pergunta"></app-pergunta>
          </div>
        </div>
</section>

But I want it to come one at a time, then when I ask the question. id return me udefined

<a [routerLink]="['/perguntas',pergunta.id]">

  {{pergunta.id}}
  {{pergunta.titulo}}

</a>

import { Component, OnInit, Input  } from '@angular/core';
import { Pergunta } from '../pergunta.model'
@Component({
  selector: 'app-pergunta',
  templateUrl: './pergunta.component.html',
  styleUrls: ['./pergunta.component.css']
})
export class PerguntaComponent implements OnInit {

  @Input() pergunta:Pergunta
  constructor() { }

  ngOnInit() {
  }

}

  "perguntas":[
      {
        "id":"1",
        "titulo":"Qual o seu comportamento em relação aos seus investimentos?",
        "opcoes":  [
          {
            "description":"Preservar meu dinheiro sem correr risco",
          },
          {
            "description": "Ganhar mais dinheiro, assumindo riscos moderados",
          },
          {
            "description": "Ganhar mais dinheiro, assumindo riscos agressivo",
          }
        ]
      },
      {
        "id":"2",
        "titulo": "Por quanto tempo você deseja manter os seus investimentos?",
        "opcoes":  [
          {
            "description":"até 1 ano",
          },
          {
            "description": "até 1 a 3 anos",
          },
          {
            "description": "de 1 a 3 anos",
          }
        ]
      },
      {
        "id":"3",
        "titulo": "Quantos % desses investimentos você pode precisar em um ano?",
        "opcoes":  [
          {
            "description":"acima de 75%",
          },
          {
            "description": "de 26% a 74%",
          },
          {
            "description": "até 25%",
          }
        ]
      }

    ]
}
    
asked by anonymous 13.03.2018 / 13:07

0 answers