У меня есть переменная шаблона в Javascript, как показано ниже
var TABLE_ROW = '<tr class = {{bgColor}}>'
+ '<td><input id = {{ID}} type = "checkbox" class = "mysqlListCheckbox" checked = "checked"/> <span style = "padding: 7px;">{{COUNT}}</span></td>'
+ '<td><p class=text-warning>{{COMMENTS}}</p></td>'
+ '</tr>';
На данный момент ID всегда отмечен, но я хочу изменить его, например, ID не следует проверять/выбирать, если COMMENTS пуст.
Я новичок в переменных шаблона Javascript. Любые справочные ссылки для достижения этого высоко ценятся.
Спасибо.
Это просто строка с чем-то, что каким-то дополнительным пользовательским JavaScript «интерпретируется» как «шаблон».
Вы используете механизм шаблонов или просто хотите передать переменные javascript в строке? Если вы просто хотите передать переменные в строку в js, это работает как var TABLE_ROW = `some stuff here ${theVariable} and other stuff here.` — `` очень важны. Если вы используете механизм шаблонов, вы должны сначала скомпилировать строку с переменными.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте тернарный оператор (если механизм шаблонов поддерживает его):
var TABLE_ROW = '<tr class = {{bgColor}}>'
+ '<td><input id = {{ID}} type = "checkbox" class = "mysqlListCheckbox" checked = {{COMMENTS == "" ? "" : "checked"}}/> <span style = "padding: 7px;">{{COUNT}}</span></td>'
+ '<td><p class=text-warning>{{COMMENTS}}</p></td>'
+ '</tr>';
Поскольку вы новичок в Javascript, попробуйте понять, как работает JS. JS как таковой не предоставляет готовых шаблонов для целей шаблона, вы можете использовать HandleBars.js, если вы использовали HandleBars. Я бы предложил вам использовать вспомогательную функцию, чтобы справиться с этим.
Ссылка на руль https://handlebarsjs.com/
Handlebars.registerHelper('decideSelect',function(param){
if (param.COMMENTS.length==0){
let Htmlstr = '<td><input id='+param.ID+' type = "checkbox" class = "mysqlListCheckbox" /> <span style = "padding: 7px;">'+param.COUNT+'</span></td>'+'<td><p class=text-warning>'+param.COMMENTS+'</p></td>';
return Htmlstr;
}else{
let Htmlstr = '<td><input id='+param.ID+' type = "checkbox" class = "mysqlListCheckbox" checked = "checked"/> <span style = "padding: 7px;">'+param.COUNT+'</span></td>'+'<td><p class=text-warning>'+param.COMMENTS+'</p></td>';
return Htmlstr;
}
});
};
var TABLE_ROW = '<tr class = {{bgColor}}>'
+ '{{decideSelect this}}</tr>';
Какой тип шаблонизатора вы используете? Это не встроенная функция Javascript. Я предполагаю, что текст JS там передается через движок перед тем, как быть переданным клиенту?