2016-04-11 25 views
6

Sto utilizzando questo ottimo angular2-modal ma non riesco a capire come restituire un valore di risultato dalla mia modal personalizzata.Come restituire il risultato da angular2-modal, o in generale dai componenti ng2

ho un'istanza in questo modo:

let dialog: Promise<ModalDialogInstance>; 
    let bindings = Injector.resolve([ 
     provide(ICustomModal, { useValue: this.gewaehltesBild }) 
    ]); 
    var self = this; 
    dialog = this.modal.open(
     <any>ImagecropperComponent, 
     bindings, 
     new ModalConfig("md", true, 27)); 


    dialog.then((resultPromise) => { 
     return resultPromise.result.then((result) => { 
      this.lastModalResult = result; 
      this.mitarbeiter.avatarImg = this.gewaehltesBild; 

      $(self.elementRef.nativeElement).find('#bildSelector').val(""); 
     },() => this.lastModalResult = 'Rejected!'); 
    }); 

ho cercato di inviare il mio returnValue con

this.dialog.close(this.croppedImage); 

ma risultato è sempre nullo. Esiste una convenzione in angular2 su come restituire i valori dai componenti, che viene utilizzato da angular2-modal?

Grazie!

risposta

8

funziona bene per me, anche io sto usando finestra personalizzata e ecco come prendo il risultato

var dialog = this._modal.open(VideoPlayerComponent, 
     resolvedBindings, 
     new ModalConfig('lg', true, 27)); 
    dialog 
     .then((d) => d.result) 
     .then((r) => { console.log(r); }, (error) => { console.log(r); }); 

quando chiamo close nell'istanza

this._dialog.close("Hello"); 

Fa stampa Hello

+0

funziona, penso di avere un refuso nel metodo che genera il valore di ritorno all'interno del modale ...:/thx – Weissvonnix