2017-06-11 1 views
2

Ich habe eine Anforderung in Angular2, wo ich ein erstes Popup öffnen muss und der Benutzer einige Werte eingeben würde. Bei einigen Benutzerereignissen, d. H. Einem Knopfklick, muss ich dieses Popup schließen und ein weiteres Popup mit den vorher vom Benutzer eingegebenen Werten im ersten Popup öffnen.Wie ein Parameter/Werte von einem Popup zu einem anderen Popup in Angular2 übergeben werden

Ich habe eine plunker erstellt, wo ich eine Login-Komponente erstellt habe, die meine erste Popup- und Home-Komponente ist, die das zweite Popup ist. Bei der Eingabe der Benutzerdaten sollte es zur Home-Komponente navigieren. Ich bin hier ein bisschen geschlagen, d. H. Wie man die Benutzernamenwerte vom ersten Popup zum zweiten übergibt, auch wie man den ersten schließt und das zweite Popup lädt?

Kann mir jemand mit diesem Problem helfen, und lassen Sie mich wissen, welche Änderungen in meinem PLNKR vorgenommen werden müssen?

+0

Erstellen Sie einen Benutzerdienst und injizieren Sie diesen sowohl in die Login- als auch in die Home-Komponente und verwenden Sie ihn, um die Daten für beide verfügbar zu machen. https://angular.io/docs/ts/latest/tutorial/toh-pt4.html – glendaviesnz

Antwort

0

Sie müssen Ihre Login-Komponentenwerte in einem Share injizierbaren Service speichern, indem Sie eine Variable darin erstellen.

Dienst

@Injectable() 
export class SharedService { 
    public sharedValues:any; 
} 

App Modul

@NgModule({ 
imports: [BrowserModule, 
     HttpModule], 
declarations: [AppComponent], 
providers: [SharedService], 
bootstrap: [AppComponent] 
}) export class AppModule { } 

Zugriff auf die Werte in beiden Login und Home-Komponente wie unten:

import {SharedService} from 'path of service folder'; 
export class LoginModal { 

constructor(private sharedService:SharedService) { 
} 

click() { 
    this.sharedService.sharedValues // get and set your values 
} 
} 

Hinweis: Setzen Sie die Anbieter nicht auf SharedService in den Komponenten, andernfalls wird sie nicht freigegeben

+0

Kannst du bitte auch den anderen Teil der Frage beantworten, zB wie man das erste Popup schließt und das zweite Popup lädt? muss ich Routing konfiguriert oder eine andere bessere Möglichkeit haben, damit umzugehen? – Krishnan

+0

@Krishnan, Sie müssen variable Änderungen im Service in der app.component abonnieren und entsprechend handeln. Bitte überprüfen Sie https://stackoverflow.com/questions/35869406/angular2-detect-change-in-service, es hat die Lösung für Ihren Fall –

Verwandte Themen