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

153
Vistas
No se puede transferir valor usando Suscripción en angular

Estoy usando Asunto y Suscripción para transferir datos entre dos componentes, pero no me funciona.

// Primer Componente

 import { Component, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs'; import { SettingsHelperService } from '../settings-screen/settings-helper.service'; @Component({ selector: 'app-master-data-config', templateUrl: './master-data-config.component.html', styleUrls: ['./master-data-config.component.css'] }) export class MasterDataConfigComponent implements OnInit, OnDestroy { zoneSelected: boolean = false; wingSelected: boolean = false; public subscription: Subscription; constructor(private settingHelperService: SettingsHelperService) { } public ngOnDestroy(): void { this.subscription.unsubscribe(); // onDestroy cancels the subscribe request } ngOnInit(): void { this.subscription = this.settingHelperService.getSelectedValue().subscribe(data => console.log(data)); } }

// Segundo Componente

 import { Component, OnInit } from '@angular/core'; import { SettingsHelperService } from './settings-helper.service'; @Component({ selector: 'app-settings-screen', templateUrl: './settings-screen.component.html', styleUrls: ['./settings-screen.component.css'] }) export class SettingsScreenComponent implements OnInit { public UnitType = [ {value: 'matric', viewValue: 'Matric'}, {value: 'imperial', viewValue: 'Imperial'}, ]; zoneSelect: boolean = false; wingSelect: boolean = false; selectedUnitType: string; valueSelected = []; constructor(private settingHelperService: SettingsHelperService) { } ngOnInit() { } save(){ let valueObj = { unitType: this.selectedUnitType, zoneSelect: this.zoneSelect, wingSelect: this.wingSelect } this.settingHelperService.setValues(valueObj); } }

// Servicio

 import { Injectable } from '@angular/core'; import { Subject, Observable } from 'rxjs'; @Injectable() export class SettingsHelperService { public unitType:string; public valueSubmitted = null; public data = new Subject<any>(); constructor() { } getSelectedValue(){ return this.data.asObservable(); } setValues(value){ console.log(value); this.data.next(value); } }

Por favor, sugiera dónde me equivoco ..?

No estoy recuperando los valores de las actualizaciones en el componente.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No veo ningún problema obvio con su código, excepto que no mostró el código donde proporciona el SettingHelperService. Eso podría ser un problema. Si no se proporciona correctamente, ambos componentes podrían tener su propia instancia del servicio y no compartir la misma. Intenta agregar este código en el servicio:

 @Injectable({ providedIn: 'root', })

Si eso no ayuda, compruebe este Stackblitz que hice en función de su código. Después de agregar lo anterior, funciona tal como está: https://angular-ivy-g8keel.stackblitz.io

over 4 years ago · Santiago Trujillo 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