2017-05-03 3 views
1

Ich arbeite in eckigen 2. Ich habe zwei Komponenten eine ist für mein Formular und eine andere ist für mein Dialogfeld & wenn ich auf den Button im Formular klicken, bekomme ich ein Dialogfeld, das die Kontrollkästchen enthalten und die zurückgeben Wert der aktivierten Kontrollkästchen in einer Variablen. Jetzt ist meine Frage, dass ich auf die Variable der Dialogkomponente in der Formularkomponente zugreifen möchte.Wie erhält man einen variablen Wert von MdDialog zur Basiskomponente in Winkel 2?

1. Motor-Zyklus-package.component.ts

moterCyclePackages = 
    [ { "name": "P1", "value":"P1", "price": "20","state": false}, 
    { "name": "P2", "value":"P2", "price": "30", "state": false}, 
    { "name": "P3", "value":"P3", "price": "40", "state": false} 
]; 
constructor(public dialogRef: MdDialogRef<MotorCyclePackageComponent>) { } 

2. form.service.ts

constructor(private http: Http, private dialog: MdDialog) { } 
public motorCyclePackage(): Observable<boolean>{ 
    let motorCycleRef: MdDialogRef<MotorCyclePackageComponent>; 
    motorCycleRef = this.dialog.open(MotorCyclePackageComponent); 
    console.log(motorCycleRef); 
    return motorCycleRef.afterClosed(); 
} 

3. benutzer form.Component.ts

constructor(fb: FormBuilder, private formservice:formService){} 
public motorCyclePackage() 
{ 
    this.formservice 
     .motorCyclePackage() 
     .subscribe(res => this.result = res); 
} 

Antwort

1
  • nehme an, Sie wollen Zugriff auf diese Eigenschaft moterCyclePackages, Sie so etwas tun kann: componentInstance

2. form.service.ts

public motorCyclePackage(): Observable<boolean>{ 
    let motorCycleRef: MdDialogRef<MotorCyclePackageComponent>; 
    motorCycleRef = this.dialog.open(MotorCyclePackageComponent); 
    console.log(motorCycleRef.componentInstance.moterCyclePackages); // this one 
    return motorCycleRef.afterClosed(); 
} 
  • , wenn Sie erhalten Daten wollen zurück, wenn modal schließen, können Sie Daten schließen Methode

1. Motorrad-package.component.ts

constructor(public dialogRef: MdDialogRef<MotorCyclePackageComponent>) { } 
closeDialog() { 
    this.dialogRef.close(any data you need); 
} 

3. Benutzer-form.Component.ts

constructor(fb: FormBuilder, private formservice:formService){} 
public motorCyclePackage() 
{ 
    this.formservice 
     .motorCyclePackage() 
     .subscribe(res => this.result = res); 
} 
+0

Ja, ich habe dies getan, aber ich möchte diese Daten nur dann, wenn Ich habe Klick OK/Übermittlungsknopf im Dialog. –

+0

Mit diesem Code werden die Daten automatisch geladen, wenn wir das Dialogfeld öffnen. –

+0

Wenn Sie OK/Submit-Taste klicken, senden Sie Daten zurück in 'dialogRef.close()' Methode –

Verwandte Themen