私はRxjsでかなり新しいです。どのように私はこのようになりますカスタム選択ボックスモデルからBehaviorSubject
の最初の値を設定することができます。BehaviorSubjectの最初の値をAngularで設定します。
private mainRangeDate: any = {beginDate: {year: 2018, month: 10, day: 9},
endDate: {year: 2018, month: 10, day: 19}};
constructor(public daterangeService: DaterangeService) { }
ngOnInit() {
console.log(this.mainRangeDate);
}
onDateRangeChanged(event: IMyDateRangeModel) {
this.daterangeService.dateRangeInterval.next(event);
console.log(event.beginDate);
}
サービス:
@Injectable()
export class DaterangeService {
dateRangeInterval = new BehaviorSubject<Object>({});
constructor() { }
}
コンポーネントテンプレート:私は必要
<my-date-range-picker name="mydaterange" [options]="myDateRangePickerOptions"
[(ngModel)]="mainRangeDate" (dateRangeChanged)="onDateRangeChanged($event)" required></my-date-range-picker>
BehaviorSubject
をmainRangeDate
に設定するには、ngOnInit
にするか、タイムアウトを使用したくありません。
なぜngOnInitに設定したくないのですか? –
他のコンポーネントで 'daterangeService.dateRangeInterval'を使う必要があります。私はこの日付間隔に基づいて注文の表を表示しています。それは価値がないなら何も起こらないでしょう。どちらのonInitが最初になるのですか?それは理にかなっていますか? –
この場合、このサービスを使用する最初のコンポーネントのngOnInitからこの値を設定できます。どのコンポーネントが最初にそれを使用するかわからない場合は、ルートコンポーネントから設定してください。 –