как отправить дату клика по полному календарю другому компоненту в Angular5 - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь отправить дату в диалоговое окно (для регистрации нового события).

Вот как я добавил в CalendarOptions,

 calendarOptions = {
        header:
          {
            left: 'prev,next,today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay,listMonth'
          },

        dayClick: (function (date, jsEvent, view) {
          let events$: Observable<Event[]> = this.store.select(fromAgenda.getAllEvents);
          this.onDayClicked.emit(events$);
        })
}

и мой другой компонент упомянул, когда ящелкнул в любой день в календаре, откроется окно регистрации события, как показано ниже,

 onDayClicked(event) {  
    let dialogRef = this.dialog.open(EventNewComponent, {
    width: '750px'
  });

  dialogRef.afterClosed().subscribe(result => {    
   this.store.dispatch(new eventsActions.LoadAll());    
  });
  }

и откроется диалоговое окно, как показано ниже,

как получить дату клика в качестве даты началав диалоге? EventNewComponent

1 Ответ

0 голосов
/ 25 февраля 2019

Наконец я нашел ответ.

 dayClick: (function (date, jsEvent, view) {
        let dialogRef = this.dialog.open(EventNewComponent, {
          width: '750px',        
          data: {
            dataKey: date._d
          }
        });      
   })

, и вы можете получить к нему доступ в другом компоненте, используя конструктор, как показано ниже,

constructor( @Inject(MAT_DIALOG_DATA) public data: any) { }

, если ваша дата необязательна,

constructor( @Optional() @Inject(MAT_DIALOG_DATA) public data: any) { }
...