Angular 6 FormControl的Concat 2值

时间:2018-08-03 11:01:26

标签: angular rxjs combinelatest

我正在创建一个http://api.example.com?startdate_30.12.2018&enddate_30.12.2018之类的API路径,其中我使用2个输入日期字段来生成日期值。

这是我的代码:

    import { Component, OnInit } from '@angular/core';
    import { FormControl } from '@angular/forms';
    import { DefaultFilter } from './default-filter';
    import { merge, combineLatest } from 'rxjs';

    @Component({
      selector: 'date-filter',
      template: `
        <input type="date" [(ngModel)]="query" [formControl]="startDate" [ngClass]="inputClass" class="form-control">
        <input type="date" [formControl]="endDate" [ngClass]="inputClass" class="form-control">
     `,
    })
    export class DateFilterComponent extends DefaultFilter implements OnInit {
      startDate = new FormControl();
      endDate = new FormControl();
      constructor() {
        super();
      }
    ngOnInit() {
      this.changesSubscription = combineLatest(this.startDate.valueChanges, this.endDate.valueChanges).subscribe(([value1, value2]) => this.setFilter());
    }

我已经使用CombineLatest合并了两个Observable,它们将一个数组生成为值,this.setFilter()使用字符串作为值,如何将其更改为字符串。

我也使用过mergeMap,但是没有用。

1 个答案:

答案 0 :(得分:1)

 this.changesSubscription = combineLatest(this.startDate.valueChanges, this.endDate.valueChanges)
.pipe(
  map(([value1, value2]) => value1 + value2)
)
.subscribe(value) => this.setFilter(value));