创建在角度为2

时间:2016-08-24 19:20:01

标签: angular rxjs

我尝试创建在组件之间传递日期的服务,但它只能在组件中工作。

@Injectable()
 export class SelectedDateService {
           private checkin = new Subject<string>();
           checkin$ = this.checkin.asObservable();
           private checkout = new Subject<string>();
           checkout$ = this.checkout.asObservable();
           setCheckIn (start: string)  {  
                      this.checkin.next(start);
                                        }
           setCheckOut (end: string) {  
                     this.checkout.next(end); }
                     }

在第一个组件中,我在构造函数方法中设置我的服务,然后我调用了 ngOnInit方法

constructor(  private dateselectService: SelectedDateService) { }
      ngOnInit() {
           this.dateselectService.checkin$.subscribe(
           checkin => {this.date.checkIn = checkin;});
           this.dateselectService.checkout$.subscribe(
           checkout => {this.date.checkOut = checkout;});
              }

并在html的输入字段中添加了点击事件,该事件记录了输入日期并在服务中设置了日期

 onDateChanged(event) {
                if (event.formatted !== '' || event !== undefined ){
                      this.selected = '#26a69a';
                      this.selectedText = event.formatted ;
                      this.dateselectService.setCheckIn(event.formatted );
                   }else {
                      this.selectedText = '';
                              }
                       }

我在ngOninit方法中添加getter的原因只是为了获取日期(如果之前已经设置过)。 请注意,我对第二个组件做了同样的事情,以便第一个组件已经设置了任何日期

0 个答案:

没有答案