Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

236
Vistas
incapaz de pasar datos entre un componente a otro componente en angular

Estoy tratando de pasar datos de un componente a otro componente. Usé el método de archivo de servicio. Creé dos componentes, uno es inicio de sesión y el segundo es hogar. Tengo que pasar datos de inicio de sesión a casa. en el componente de inicio de sesión, tomo la entrada del usuario y el componente de inicio debería imprimir eso. Usé este código a continuación, pero cuando doy entrada, no se imprime en la salida.

 import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class SharedService { message : any; constructor() { } setMessage(data: any){ this.message=data; } getMessage(){ return this.message; } }
este es el código de mi componente de inicio
 import { Component, OnInit } from '@angular/core'; import { SharedService } from '../shared/shared.service' @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.css'] }) export class HomeComponent implements OnInit { message : string | undefined; constructor(private shared:SharedService ) {} ngOnInit() { this.message =this.shared.getMessage() } }
 <h1> {{ message }} </h1>
este es mi código de componente de inicio de sesión
 import { Component, OnInit } from '@angular/core' import { SharedService } from "../shared/shared.service" @Component({ selector: 'app-login', templateUrl: './login.component.html', styleUrls: ['./login.component.css'] }) export class LoginComponent implements OnInit { message : any ; constructor( private shared: SharedService ) { } ngOnInit(): void { this.shared.setMessage(this.message) } }
 <input required type="text" class="form-control" placeholder="Enter username" [(ngModel)]="message">

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

por supuesto, no funcionará de esta manera. La razón por la que no funciona. cuando llama a SharedService en su constructor en el componente de cuadro, crea una instancia de su servicio con el mensaje: any. si lo cambia en un componente, no cambiará en el otro componente.

lo que puedes hacer es. en su servicio message = new Subject() ; setMessage(data: any){ this.message.next(data) ; } usted llama al mensaje establecido en su componente de inicio de sesión. y en su componente de inicio se suscribe al tema así. this.sharedService.getMessage().subscribe( (result :any ) => {console.log(result )} .

lo siento si esta respuesta es desordenada, esta es la primera vez que uso SOF.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda