Подобно тому, как мы можем использовать JS-шаблонные механизмы (например, Handlebars) для динамических значений вставки в HTML (например, <div>{{value inserted by JavaScript}}</div>
), я хотел бы вставить код JavaScript в код JavaScript с тем же обозначением {{curly brackets}}
. Например:Как использовать код JavaScript в JavaScript-коде?
var myFunction= {{My Function}};
var bar = myFunction(foo);
запрограммированных в My Function
шаблона:
function(foo) {
return foo+'bar';
}
Я попытался Google, но я не получаю нигде, как все результаты о шаблонных движках JavaScript (например Handlebars).
Любая идея, как я мог бы достичь этого в JavaScript в браузере?
примечание 1: FYI причина, почему я хочу, чтобы достичь этой цели является создание функции JavaScript, я могу блок-тест в моем браузере, и использовать как есть (и без необходимости замены {{template}}
кода) в функцию JavaScript, используемой Google Tag Manager, которые поддерживает {{curly brackets}}
обозначение в его движке JavaScript.
примечание 2: если это слишком сложно, я буду использовать базовый язык (например, Twig в PHP), чтобы написать свой код JavaScript с помощью {{curly brackets}}
и вернуть обычный JavaScript в браузер, чтобы мои модульные тесты работали и повторно использовались код, записанный в бэкэнд.
Я не могу представить себе ситуацию, когда вы действительно нуждаетесь в этом, потому что вы всегда можете передать функции, как и любой другой JS объекта в качестве аргумента функции. Я не хочу говорить, что это может быть бесполезно, но вы действительно уверены, что вам это нужно? –
Имея это, определенно было бы полезно, так как это позволило бы мне разработать + модульный тест моего кода, а затем буквально просто скопировать/вставить в Диспетчер тегов Google. Теперь я должен выполнить ручное редактирование, прежде чем переносить свой код на GTM, который подвержен ошибкам, и побеждает модульное тестирование, которое должно гарантировать, что мой код работает так, как должен. Мой экземпляр Диспетчера тегов Google используется для развертывания тегов аналитики на веб-сайтах, которые ежемесячно получают несколько миллионов посетителей, поэтому убедитесь, что все работает правильно, действительно важно. Вне этого контекста я не вижу себе, как это было бы полезно действительно :) – Max
Ручки - за исключением экранирования - не ограничивается HTML, но может использоваться любой язык, на котором не будет синтаксиса, противоречащего Handlebars. В связи с этим вы можете использовать Handelbars, потому что '{{}}' нотация не будет существовать в js-коде. Но из-за экранирования вам нужно будет использовать '{{{}}}' или определить данные как SafeString. –