2017-01-24 3 views
0

ngbModalコンポーネントの結果を得るためには助けが必要です。ngbModalコンポーネントの結果を取得するには

私はここに私のopenTimePicker()メソッド

openTimePicker() { 
    const modalRef =  this.modalService.open(DateTimePickerModalComponent); 
    console.log(modalRef.componentInstance); 
}  

私DateTimePickerModalComponentあるリンク

<a class="order-collection-options-link" (click)="openTimePicker()">{{'ORDER_COLLECTION_OPTIONS_LABEL' | dict}}</a> 

でモーダルを開きます。 それは

...だから私は、open()メソッドでは、それらのイベントに私の「親」コンポーネントを接続する方法を知っておく必要があります...二つのボタンが適用とOKと各イベントonApplySelectionとonConfirmSelectionを発する

@Component({ 
    selector: 'date-time-picker-modal', 
    styleUrls: ['./dateTimePickerModal.component.scss'], 
    templateUrl: './dateTimePickerModal.component.html', 
}) 

export class DateTimePickerModalComponent { 

private selection : Date[] = []; 

    @Output() onApplySelection: EventEmitter<Date> = new EventEmitter<Date>(); 
    @Output() onConfirmSelection: EventEmitter<Date[]> = new EventEmitter<Date[]>() 

    ... 


} 

を持っています

答えて

0

ネットをさらに検索した後、これは私が思いついたものであり、それを行うための控えめな方法であるはずです。私のコンポーネントはPARENT CHILDの関係では本当にありませんので、私はサービスを実装し、subscribeメソッドを使用しました。

@Injectable() 
export class DateTimePickerModalService { 

    private confirmedSelectionSource = new Subject<Date[]>(); 
    private appliedSelectionSource = new Subject<Date>(); 

    confirmedSelection$ = this.confirmedSelectionSource.asObservable(); 
    appliedSelection$ = this.appliedSelectionSource.asObservable(); 


    constructor() { 

    } 

    confirmSelection(selection : Date[]) { 
    this.confirmedSelectionSource.next(selection); 
    } 


    applySelection(selectedDate : Date) { 
    this.appliedSelectionSource.next(selectedDate); 
    } 

} 

と[]

と私は(購読実現し、これらの変更にinformmedする必要があります私のサービス)メソッド

}でプロバイダにapp.modules.tsにこれを追加しました

関連する問題