Как говорит ошибка ERROR Error: InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe'
.
Вы пытаетесь синхронизировать подписку, что не имеет смысла.
Вы должны передавать потоки.
this.showDateCriteria =
combineLatest(
this.myForm.controls['name'].valueChanges,
this.myForm.controls['age'].valueChanges, (name, age) => ({
name,
age
}));
this.showDateCriteria.subscribe(val => !(val.name == null || val.age == null));
РЕДАКТИРОВАТЬ:
Вы также должны startWith
, иначе combineLatest
не сработает.
Кроме того, логика была неправильной, вы должны вернуть boolean
true
, когда любой из них не равен нулю, например:
this.showDateCriteria = combineLatest(
this.myForm.controls['name'].valueChanges.pipe(startWith(null)),
this.myForm.controls['age'].valueChanges.pipe(startWith(null)),
(name, age) => {
console.log(name);
return name || age;
});
https://stackblitz.com/edit/angular-g6vi6k?file=src%2Fapp%2Fapp.component.ts