#javascript #html #variables #google-apps-script #bulletedlist
#javascript #HTML #переменные #google-apps-script #маркированный список
Вопрос:
Я хотел бы создать динамически маркированный список в html-файле из Google apps-script с переменной. и для этого я хотел бы получить некоторую помощь, поскольку я действительно новичок в этом. в этот момент электронная почта отправляется по электронной почте как фиксированные переменные op [x], поэтому, если они пусты, у меня есть пустой маркированный список.
У меня есть функция, вызываемая luli
у меня есть переменные в операции вызова массива, которые должны быть маркированным списком на самом деле я также создал счетную переменную из их суммы
luli.gs
function luli() {
var emailTemp = HtmlService.createTemplateFromFile('INTERVENTION-EMAIL');
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Template Creation');
// for bulleted list
var operation = ws.getRange('B27:B32').getValues();
var i = ws.getRange('$B$33').getValue();
// used at the moment
var op1 = wsSettings.getRange('$B$27').getValue();
var op2 = wsSettings.getRange('$B$28').getValue();
var op3 = wsSettings.getRange('$B$29').getValue();
var op4 = wsSettings.getRange('$B$30').getValue();
//email variables used at the moment
emailTemp.op1 = op1;
emailTemp.op2 = op2;
emailTemp.op3 = op3;
emailTemp.op4 = op4;
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.createDraft(
mail,
sujet,
//send message generated htmlbody amp; htmlmessage built.
{ name: nom, htmlBody: htmlMessage, cc: cc, from: from },
);
}
У меня есть шаблон электронной почты под названием intervention-email
intervention-email.html
<p dir="ltr">
<span style="font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif"
><?= corps1 ?></span
>
</p>
<ul style="list-style-type: square">
<li dir="ltr">
<span
style="
font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
font-size: 10pt;
"
><?= op1 ?></span
>
</li>
<li dir="ltr">
<span
style="
font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
font-size: 10pt;
"
><?= op2 ?></span
>
</li>
<li dir="ltr">
<span
style="
font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
font-size: 10pt;
"
><?= op3 ?></span
>
</li>
<li dir="ltr">
<span
style="
font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif;
font-size: 10pt;
"
><?= op4 ?></span
>
</li>
</ul>
<p>amp;nbsp;</p>
Было бы неплохо иметь код, генерирующий маркированный список li в соответствии с информацией, содержащейся в переменной operation, а затем заполняющий список адресов электронной почты.
Спасибо за вашу помощь.
Комментарии:
1. Можете ли вы более подробно объяснить, где именно вы испытываете трудности и нуждаетесь в помощи? В чем проблема с вашим кодом, как он есть?
2. У меня есть статический html-код li, каждый li является переменной от op1 до op4, если у меня есть все из них, это хорошо, потому что он заполняет их все. Но если у меня есть только один, у меня есть 3 пустых маркера. Будет лучше, если я смогу сгенерировать нужное количество маркеров с помощью правильных операций. может быть, имея цикл для каждого или что-то подобное? Спасибо
Ответ №1:
Вы можете поместить свои переменные в массив (или напрямую получить их в виде массива), а затем передать массив в шаблон
Пример
Code.gs
...
var values = wsSettings.getRange('B27:B30').getValues().flat();
emailTemp.options = values;
var htmlMessage = emailTemp.evaluate().getContent();
...
intervention-email.html
...
<ul style="list-style-type: square">
<? for (var i = 0; i < options.length; i ) { ?>
<li dir="ltr">
<span style="font-family: Roboto, RobotoDraft, Helvetica, Arial, sans-serif; font-size: 10pt;">
<?= options[i] ?>
</span>
</li>
<? } ?>
</ul>
...
Смотрите документацию.
Комментарии:
1. Parfait ! это работает, спасибо за ваш быстрый ответ!
2. Я забыл сказать, что в вашем предложении «for» есть ошибка опечатки, переменная только «i», «j» не ожидается.
3. Извините за опечатку, я отредактировал ее в своем ответе!
4. Без проблем, я использую код, и хорошо, что он работает!