В TypeScript / Angular вы обычно вызываете функцию, которая возвращает наблюдаемое, и подписываетесь на нее в таком компоненте, как этот:
this.productsService.getProduct().subscribe((product) => { this.product = product });
Это нормально, когда код выполняется в классе, который управляет данными, но, по моему мнению, это не должно быть обработано в компоненте. Возможно, я ошибаюсь, но я думаю, что работа компонента должна заключаться в том, чтобы запрашивать и отображать данные без обработки того, как они получены.
В шаблоне angular вы можете сделать это, чтобы подписаться и отобразить результат наблюдаемого:
<h1>{{ product.title | async }}</h1>
Возможно ли иметь что-то подобное в классе компонентов? Мой компонент отображает форму и проверяет, является ли дата действительной после ввода. Отправка формы блокируется до тех пор, пока значение не станет действительным, и я хочу сохранить все логи c позади нее в службе, которая должна подписаться на вызов AJAX, компонент проверяет только, получил ли он действительную дату.
class FormComponent {
datechangeCallback(date) {
this.dateIsValid$ = this.dateService.checkDate(date);
}
submit() {
if (this.dateIsValid$ === true) {
// handle form submission...
}
}
}