how to delay interpolation of template strings?

Domenic Denicola d at domenic.me
Tue Dec 16 07:26:52 PST 2014


You want templates, which is something provided by many libraries (Handlebars, etc.). The language provides template strings as a syntactic feature.

Templates and template strings are very different. Don’t be fooled by the name into thinking that templates are some sort of natural feature addition to template strings; they’re in fact a different concept altogether.

From: es-discuss [mailto:es-discuss-bounces at mozilla.org] On Behalf Of Niloy Mondal
Sent: Tuesday, December 16, 2014 06:48
To: Andrea Giammarchi
Cc: es-discuss at mozilla.org
Subject: Re: how to delay interpolation of template strings?

Can this be considered for a feature request? Provision in the language to dynamically construct template strings and interpolate them.

On Tue, Dec 16, 2014 at 4:48 PM, Andrea Giammarchi <andrea.giammarchi at gmail.com<mailto:andrea.giammarchi at gmail.com>> wrote:
irony ... I think you would need to evaluate the template string inline in order to interpolate its result ...

OR

you just go for this method which also works down to ES3 engine:
https://gist.github.com/WebReflection/8f227532143e63649804

Regards

On Tue, Dec 16, 2014 at 10:01 AM, Niloy Mondal <niloy.mondal84 at gmail.com<mailto:niloy.mondal84 at gmail.com>> wrote:
Thanks, this would work.

How can I construct a template string dynamically? Like reading the template from a file/database and then interpolate it.

On Tue, Dec 16, 2014 at 2:29 PM, Claude Pache <claude.pache at gmail.com<mailto:claude.pache at gmail.com>> wrote:

Le 16 déc. 2014 à 09:27, Niloy Mondal <niloy.mondal84 at gmail.com<mailto:niloy.mondal84 at gmail.com>> a écrit :

I want to define a template string using backquotes in a different file and then have it interpolated with actual values in a different file. How can I do it?


Just enclose it in a function:

```javascript
   function foo(a) {
        return `some template ${a}`
    }

    foo("bar") // will evaluate `some template ${"bar"}`
```

—Claude

_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org<mailto:es-discuss at mozilla.org>
https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20141216/6ca0e9af/attachment-0001.html>


More information about the es-discuss mailing list