удалить пустое значение объекта из реактивной формы valueChanges - PullRequest
0 голосов
/ 05 ноября 2018

У меня реактивная форма в угловом применении. Я подписываюсь на это с valueChanges и, прежде чем получить результат метода подписки , хотите отфильтровать этот объект с помощью rxjs filter или какого-либо подобного метода, чтобы получить только непустое поле формы. Как я могу решить это?

this.form.valueChanges.pipe(
     debounceTime(500),
     filter(formObj => {
     // code that remove empty object values
     })
).subscribe(val => {
  // val example `{fullName: "name", dateOfBirthday: "", phoneNumber: "", fullAddress: ""}`       
});

1 Ответ

0 голосов
/ 05 ноября 2018

Создал Stackblitz Демо для вашей справки

Вы можете как-то реализовать это так:

filterEmptyFields(data: any): any {    // Filter any fields that aren't empty & store in a new object - To be passed on the Pipe map's caller
    let fields = {};
    Object.keys(data).forEach(key =>  data[key] != '' ? fields[key] = data[key] : key);

    return fields;   
}

trackEmptyFields(): void {
    this.form
      .valueChanges
      .pipe(map(this.filterEmptyFields))
      .subscribe(fields => console.log(fields));    
}

Выход из Stackblitz Демо

enter image description here

...