Условная логика в той же строке в 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 вы можете немного помассировать данные. Так что если отсутствие означает да, я бы сделал что-то вроде этого (JavaScript):

      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"}}
Другие вопросы по тегам