Ionic 2: Как обработать ответ из сообщения

Я чувствую себя глупо.
Я хочу попросить к моему API с сообщением, которое дает мне json.
Как я могу получить доступ к одному из полей json и отправить на страницу, которая вызывает это?

У меня есть этот провайдер:

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';

@Injectable()
export class AuthService {
  data: any;
  result: any;
  http: Http;

  public login(credentials) {

    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
      return Observable.create(observer => {
        // At this point make a request to your backend to make a real check!
        this.data = {api_token: "asdfg", http_id: credentials.email, http_pass: credentials.password};
        this.http.post('http://mywebsite/api/login', JSON.stringify(this.data), {headers: {'Content-Type': 'application/json'}})
        .map(res => res.json())

        let access = (credentials.password === "pass" && credentials.email === "email");
        observer.next(access);
        observer.complete();
      });
    }
  }

  public logout() {
    return Observable.create(observer => {
      observer.next(true);
      observer.complete();
    });
  }
}

Спасибо!

1 ответ

  1. Если вы пытаетесь получить данные из ответа, этого достаточно

    public login(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
        let data = {api_token: "asdfg", http_id: credentials.email, http_pass: credentials.password};
        return this.http.post('http://mywebsite/api/login', JSON.stringify(data), {headers: {'Content-Type': 'application/json'}})
        .map(res => res.json())
    }}
    

    В компоненте вы можете получить к ним доступ как

    provider.login(cred).subscribe(res => { 
    console.log(res) },
    err => {
    console.log(err)
    )