Gibt es eine Möglichkeit, programmgesteuert ein Vorlagenliteral zu erstellen?
Nein. "Programmatisch" und "Literal" sind gegensätzlich (außer Sie sind in den Bereichen der Compiler).
Template Strings sollte besser interpoliert Stringliterale oder so genannt wurden. Bitte do not confuse them with templates. Verwenden Sie eine Vorlage-Engine Ihrer Wahl, wenn Sie dynamisch erstellte Zeichenfolgen für Vorlagen verwenden möchten.
Natürlich Vorlage Literale könnte bei der Umsetzung solcher helfen, und Sie können einfach mit etwas weg wie
function assemble(literal, params) {
return new Function(params, "return `"+literal+"`;"); // TODO: Proper escaping
// ^^^^^^^^ working in real ES6 environments only, of course
}
var template = assemble("Hello, my name is ${name}", "name");
template("Chaim"); // Hello, my name is Chaim
Sie können nicht ohne 'eval', und ich glaube nicht, dass Sie möchten. Warum nicht einfach einen Vorlagenstring verwenden? – Bergi
Weil ich eine dynamische Zeichenfolge übergeben möchte, die als Vorlage verwendet werden soll. – haim770
@ haim770 Warum kann die dynamische Zeichenfolge kein Vorlagenliteral sein? – thefourtheye