Saltar al contenido

¿Cómo enviar un valor de un componente a otro?

Posterior a investigar con especialistas en la materia, programadores de deferentes ramas y maestros hemos dado con la solución al dilema y la compartimos en este post.

Solución:

¡¡Oh!! puede ser que llego demasiado tarde para responder a la pregunta! Pero no importa. Esto podría ayudarlo a usted o a otros a compartir datos entre componentes que usan el enrutador, el servicio compartido y el objeto compartido que se usa dentro del servicio compartido. Espero que esto seguramente ayude.

Responder

Arranque.ts

import Component,bind from 'angular2/core';

import bootstrap from 'angular2/platform/browser';

import Router,ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS from 'angular2/router';

import SharedService from 'src/sharedService';

    import ComponentFirst from 'src/cone';
import ComponentTwo from 'src/ctwo';


@Component(
  selector: 'my-app',
  directives: [ROUTER_DIRECTIVES],
  template: `
    

Home

`, ) @RouteConfig([ path:'/component-first', name: 'ComponentFirst', component: ComponentFirst path:'/component-two', name: 'ComponentTwo', component: ComponentTwo ]) export class AppComponent implements OnInit constructor(router:Router) this.router=router; ngOnInit() console.log('ngOnInit'); this.router.navigate(['/ComponentFirst']); bootstrap(AppComponent, [SharedService, ROUTER_PROVIDERS,bind(APP_BASE_HREF).toValue(location.pathname) ]);

PrimerComponente

import Component,View,bind from 'angular2/core';
import SharedService from 'src/sharedService';
import Router,ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS from 'angular2/router';
@Component(
  //selector: 'f',
  template: `
    
`, ) export class ComponentFirst constructor(service:SharedService,router:Router) this.service=service; this.router=router; send(str) console.log(str); this.service.saveData(str); console.log('str'); this.router.navigate(['/ComponentTwo']);

Segundo componente

import Component,View,bind from 'angular2/core';
import SharedService from 'src/sharedService';
import Router,ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS from 'angular2/router';
@Component(
  //selector: 'f',
  template: `
    

myName

SharedService y objeto compartido

import Component, Injectable,Input,Output,EventEmitter from 'angular2/core'

// Name Service
export interface myData 
   name:string;




@Injectable()
export class SharedService 
  sharingData: myData=name:"nyks";
  saveData(str)
    console.log('save data function called' + str + this.sharingData.name);
    this.sharingData.name=str; 
  
  getData:string()
  
    console.log('get data function called');
    return this.sharingData.name;
  
 

Todo lo que tiene que hacer es crear un servicio, inyectarlo en ambos componentes, asignar el valor de entrada al servicio verificable y acceder a él en el otro componente. Lo siento hermano, pero no sé cómo crear plunker. Aquí está el código:

EDITAR:

Primero haga este servicio de datos:

export class DataService
     dataFromService;

Luego inyecte esto en su primer componente:

import Component,View from 'angular2/core';
import Router from 'angular2/router';
import DataService from 'path/to/dataservice';

@Component(
templateUrl: 'home/home.html'
)


export class AppComponent 
 toDoModel;
 constructor(private _router:Router, public dataService : DataService) 




 onclck(inputValue)
  alert(inputValue)
  this.dataService.dataFromService = inputValue;
  this._router.navigate(['Second']);
 


Luego inyecte otro componente y acceda al valor:

import Component,View from 'angular2/core';
import DataService from 'path/to/dataservice';
export secondComponent{
   constructor(public dataService : DataService)
   console.log(this.dataService.dataFromService);

Te mostramos las comentarios y valoraciones de los lectores

Eres capaz de añadir valor a nuestra información añadiendo tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *