Условная логика в той же строке в Adobe Document Generation не распознает теги шаблона
У меня есть поле json, которое либо отсутствует, либо установлено на
true
. Но в моем документе я хочу, чтобы это отображалось как «Да» или «Нет». Я пробовал следующее условное выражение ():
{% conditional-section expr(`my_field` = true) %}Yes{% end-section %}{% conditional-section expr(`my_field`!= true) %}No{% end-section %}
Но когда я вызываю Adobe Document Generation API, полученный мной PDF-файл все еще содержит эти теги шаблона. Почему-то не обнаруживается. Как я могу этого добиться?
2 ответа
Я знаю, что задал вопрос выше в комментарии, но думаю, что могу попытаться ответить на него сейчас. Так что прямо сейчас нет способа сказать, «если значение НЕ присутствует или присутствует и равно да». Есть несколько способов справиться с этим, но я думаю, что проще всего будет изменить ваши данные. Чтобы было ясно, я не имею в виду изменение вашей базы данных или чего-то еще, но имейте в виду, что перед вызовом нашего API вы можете немного помассировать данные. Так что если отсутствие
if(!mydata.my_field) {
mydata.my_field = 'yes';
}
Затем вы можете сделать что-то вроде этого:
{% conditional-section expr(my_field = "yes") %}
Yes
{% end-section %}
{% conditional-section expr(my_field = "no") %}
No
{% end-section %}
Однако это не будет в той же строке. Как я уже сказал, это известная проблема. Если вам это нужно как таковое, я бы снова использовал идею массирования ваших данных. Вы можете сделать что-то вроде этого (опять же, JavaScript, но это можно сделать на любом языке):
if(!mydata.my_field) {
mydata.my_field = 'yes';
}
if(mydata.my_field === 'yes') mydata.my_field_value = 'Yes';
else mydata.my_field_value = 'No';
Все, что я сделал, это установил на основе значения my_field другую переменную. Затем в шаблоне Word вы можете упростить еще больше, просто используя
{{my_field_value}}
Благодаря такой гибкости Document Generation у вас есть несколько различных способов решения проблемы.
Я нашел, что это работает для меня:
{{my_field ? "Yes" : "No"}}