• ENTRAR
  • No hay productos en el carrito.

Componente y Servicio

Viendo 6 publicaciones - del 1 al 6 (de un total de 6)
  • Autor
    Publicaciones
  • #12785

    esther.pardos
    Participante

    Hola,

    Cuando desde el método ngOnInit de un componente accedo a un método de un servicio, en el propio componente no puedo utilizar los valores recuperados. Incluyo el código: (En el propio método el valor de domain es undefined)

     

    import { Component, OnInit } from ‘@angular/core’;

    import {SignInService, User} from “../sign-in/sign-in.service”;

    import {InformationService} from “../services/information.service”;

     

    @Component({

    selector: ‘app-navigation’,

    templateUrl: ‘navigation.component.html’,

    styleUrls: [‘navigation.component.css’]

    })

    export class NavigationComponent implements OnInit {

     

    user: User;

    domain: string;

    img: string;

     

    errorMessage: string;

     

     

    constructor(private signInService: SignInService,

    private informationService: InformationService) {

     

    this.user = signInService.user;

    this.img = “assets/images/logo.png”;

    }

     

    ngOnInit() {

     

    this.informationService.getInstallation().subscribe(

    domain => this.domain = domain,

    error => this.errorMessage = <any>error);

     

    //A partir del subdominio obtenemos la entidad y comprobamos si existe personalizacion

    console.log(‘dominio ‘ +this.domain);

    let subdomain = document.location.hostname.substring(0,      document.location.hostname.indexOf(this.domain)-1);

    console.log(‘subdominio ‘ + subdomain);

    }

     

    }

    —-

     

    import { Injectable } from ‘@angular/core’;

    import {Http, Headers, RequestOptions, Response} from “@angular/http”;

    import {Observable} from “rxjs”;

     

     

    @Injectable()

    export class InformationService {

     

    url = “/api/rest/info/installation”;

     

    domain: string;

     

    constructor(private http:Http) {

    }

     

    getInstallation(): Observable<string> {

     

     

    let headers = new Headers({ ‘Content-type’: ‘application/json’});

    let options = new RequestOptions({headers: headers});

     

    return this.http.get(this.url,options)

    .map(this.extractData.bind(this))

    .catch(this.handleError);

    }

     

    private extractData(res: Response) {

    let body = res.json();

     

    if(body.errorCode == 0)

    this.domain = body.result.domain;

    return body;

    }

     

    private handleError(error: Response | any) {

    console.error(error.message || error);

    return Observable.throw(error.message || error);

    }

     

    }

     

    #12786

    Cursosdesarrolloweb
    Jefe de claves

    Hola Esther,

    Por favor, haz referencia a la unidad en la que estés teniendo el problema y utiliza este hilo para escribir código en el foro, será más sencillo de entender.

    Un saludo.

    #12787

    esther.pardos
    Participante
    #12788

    esther.pardos
    Participante

    Unidad servicio $http

     

    En lugar de mostrar los resultados en el html necesito utilizar en el propio componente el valor recuperado.

    #12789

    Cursosdesarrolloweb
    Jefe de claves

    Hola Esther,

    Si sigues el ejemplo del curso verás que puedes acceder a la información, pero debes hacerlo dentro de la llamada a subscribe.

    Un saludo.

    #12790

    esther.pardos
    Participante

    Muchísimas gracias, tengo que hacer un proyecto en angular en el trabajo, y por desgracia voy más rápido en el curro que haciendo el curso, con lo que voy muy perdida.

Viendo 6 publicaciones - del 1 al 6 (de un total de 6)

Debes estar registrado para responder a este debate.

Síguenos en las redes sociales para estar al tanto de los últimas novedades :)

Facebook
Facebook
Google+
Google+
https://www.cursosdesarrolloweb.es/forums/topic/componente-y-servicio">
Pinterest
Pinterest
top
Cursosdesarrolloweb ©. Todos los derechos reservados.
📢 Inscríbete a cualquier curso por solo 10€ con acceso inmediato y para siempre📢
🌍Los cursos gratuitos son exclusivos de esta plataforma, ÚLTIMOS CURSOS EN 4K🌍
+ +

Login

Create an Account Back to login/register