У меня есть amp-form
, который отправляет адрес с POST
, и 2 вида ошибок, которые могут вернуться: {error: "precisionRequired"}
и {error: "invalidZipcode"}
.
У меня также есть 2 amp-lightbox
с соответствующим текстом и формами в случае ошибки с адресом пользователя, поэтому я хотел бы открыть правильный лайтбокс в соответствии с полученной ошибкой.
Вот фрагмент моего кода:
<form method="POST" action-xhr="/epiceries"
on="submit-success: AMP.navigateTo(url='/epiceries'); submit-error: precisionRequired.open">
<input type="text" name="address">
<button type="submit"> Submit </button>
</form>
<amp-lightbox id="invalidZipcode" layout="nodisplay">
[... some form when the zipcode is not deliverable]
</amp-lightbox>
<amp-lightbox id="precisionRequired" layout="nodisplay">
[... some content to ask the user to give us a complete address, not just a city :) ]
</amp-lightbox>
Я знаю, что могу использовать состояние для условной визуализации интересующей меня детали в одном лайтбоксе, например:
<form method="POST" action-xhr="/epiceries"
on="submit-success: AMP.navigateTo(url='/epiceries'); submit-error: AMP.setState({error: event.response.error}), lightbox.open">
<input type="text" name="address">
<button type="submit"> Submit </button>
</form>
<amp-lightbox id="lightbox>
<div [class]="error == 'invalidZipcode' ? '' : 'hidden'">
[... some form when the zipcode is not deliverable]
</div>
<div [class]="error == 'precisionRequired' ? '' : 'hidden'">
[... some content to ask the user to give us a complete address, not just a city :) ]
</div>
</amp-lightbox>
, но, похоже, взломанный, и я бы хотелиметь 2 разных лайтбокса, как в моем первом фрагменте.
Можно ли условно открыть лайтбокс на основе ответа сервера?если да, то как?