问题标签 [template-literals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
47 浏览

javascript - 如何在函数的参数中使用可变字符串值来表示 Javascript 对象?

老实说,我上周一直在寻找这个。我怀疑我不知道要使用的正确搜索词,或者我要问的可能是不可能的。不过,这似乎是一个常见的用例,所以它可能是前者。

我正在创建一个页面,用户可以在其中从下拉菜单中选择他们的产品以查看软件要求。我们有大量不同的可能产品,它们都有相似的需求——所以我们希望在它们之间重用值。

我对 JavaScript 非常陌生,并且发现模板文字非常有用。也许我过度使用它们是因为它们易于理解,但我也希望在这里使用它们。

为了简化这一点,我以“杯子”而不是软件/硬件为例。

首先,我们有我们的各种属性:

然后我为每个产品都有一个变量,例如:

最后,一个函数以我想要的格式返回我的所有变量:

当我打电话时tableTemplate(simple),我得到一个 HTML 表格,其中填写了我的所有属性。

然后,我有一个包含每种可能产品的下拉菜单。菜单值对应于常量名,所以:

现在,我将一一进行,并tableTemplate为每个选择手动调用该函数:

(等等,但对于 25 种产品变体)。

我希望能够做这样的事情,但不能

但是虽然我还没有找到如何做的答案,但我笨拙的搜索告诉我我不能这样做,因为我指向一个值(“简单”)而不是一个引用(const simple = { }) (我认为?)

有解决方法吗?

使用模板文字以外的东西会更好吗?

这是一个带有示例的 JSFiddle:https ://jsfiddle.net/cwow123/voq6dvt9/

0 投票
1 回答
148 浏览

javascript - 递归 .replace 中的变量用正则表达式替换

JSFiddle

对于语法校正程序,我必须使用 28 种不同的RegExp.

所以我做了一个简单的for函数来一起处理所有的更正。

但是在这些 RegExp 中,我有 2 个冗余模式我想用作变量。

非工作示例:

我怎样才能正确地做到这一点?

我找到了一些解决方案,但更适用于一个RegExp需求。

谢谢 :)

0 投票
5 回答
7256 浏览

javascript - 关于意外字符串连接的 ESLint 错误

我有以下内容:

Eslint拒绝我的代码说:

建议使用模板文字而不是字符串连接。(首选模板)

以上有什么问题?

0 投票
2 回答
1140 浏览

node.js - 使用变量构建嵌套对象的动态 MongoDB/Mongoose 查询

我的应用程序有 4 个相同的 Node/Express API 路由,用于删除 MongoDB 数据库中的嵌套对象属性。这 4 条路由在语法上的唯一区别是字符串值(“facebook”、“google”、“twitter”或“github”。这是四种路由之一:

我的目标是通过在 Express 路由的 URL 上添加一个参数,将这四个路由重构为一个端点,该参数将成为代表四种社交媒体帐户类型之一的字符串变量。该路线的重点是动态确定要在 MongoDB用户文档中的authProviders对象中$unset(删除)哪个社交媒体帐户属性。

我尝试构建 MongoDB 查询以使用 ES6 模板文字访问必要的对象属性,但是我收到一个错误:"SyntaxError: Unexpected template string"

下面是我尝试使用 ES6 模板文字和社交媒体变量重构为单一端点的代码:

这是 MongoDB 文档:

在此处输入图像描述

关于如何使这项工作的任何想法?我似乎无法弄清楚如何构造 MongoDB 查询以使用变量访问对象属性。

0 投票
2 回答
323 浏览

javascript - 数组字面量:此类型不能强制转换为字符串

我有一个对象

我想在模板文字中使用它,因为我的用例但出现错误,假设我们使用模板文字记录这个数组

我们会得到这个错误

我如何在模板文字中使用数组的任何替代解决方案?

这是我的用例我有一个查询

但它被转换为[Object Object]. 我知道有一些限制,所以如果你可以请提出一个更好的解决方案?

这是我的 where 对象

0 投票
1 回答
1591 浏览

javascript - 在 Typescript 中嵌套模板字符串

我正在尝试从对象中检索变量。

我唯一的问题是我不知道“testcolumn”是什么,因为我正在动态地执行此操作。我不确定该怎么做,我尝试的嵌套模板字符串策略将无法编译。

我也试过只使用变量名而不是嵌套模板字符串,但这只是在对象中查找不存在的 varString 值。有什么方法可以使用嵌套文字将字符串值替换为模板文字,并且它仍然查找 row.testcolumn 而不是 row.varString?

0 投票
1 回答
103 浏览

three.js - 是否可以消除three.js 着色器中引号和逗号的麻烦?

例如,在 Flash (Actionscript) 中,我可以摆脱每行着色器代码 (AGAL) 中的双引号和加号,只需使用 CDATA 就可以像这样左对齐代码:

在three.js(Javascript)中是否可以以类似的方式摆脱每行的两个引号和逗号?

我尝试了以下方法,但它不起作用:

难道我做错了什么?有解决办法吗?如今,为了被框架理解,仍然必须在每行代码中使用愚蠢的双引号、逗号等,这确实令人分心、耗时且令人尴尬。它应该比这更聪明,程序应该让我们的生活更轻松,而不是更困难!

0 投票
1 回答
227 浏览

javascript - 如何在定义 sessionStorage 键时使用 ES6 模板文字

我正在尝试使用 ES6 模板文字语法来设置 sessionStorage,其中部分键是活动选项卡 ID。

我首先尝试将 ES6 模板文字放入方法中:

但这不会编译。

接下来我在我的方法中创建了一个常量,然后在 sessionStorage 方法中引用它:

我不确定什么是正确的语法,但都失败并出现了错误:

我的目标是有一种方法来动态检查存储以查看它们是否存在密钥,如果不存在则设置它。

除了高级理解之外,我对 sessionStorage 并不熟悉。我知道键和值必须是字符串。

我正在使用 React 和 Redux

0 投票
2 回答
713 浏览

javascript - 在 Function 构造函数中为 ES6 模板文字设置上下文?

我的应用程序获取资源字符串 + 占位符标记的列表,它应该使用给定值更改标记。

这种资源的一个例子是:"http://example.com/?name=${name}&age=${age}";

(我在一个数组中得到了很多这样的东西,但这不相关)。

所以现在我有了这个^ 字符串并且有了值。所以我需要生成消化后的字符串。

当然我可以使用eval

这行得通。但我不想使用eval.

所以我改用其他方法new Function()()

这产生了函数:

所以现在我可以做:

但是现在我需要在内部函数中分解,obj以便模板文字知道值

顺便说一句 - 我试过这个 - 没有成功:

问题

如何obj在内部函数中展平,以便${}具有已知的局部值?

注意,我不喜欢使用正则表达式解决方案,因为模板文字中有换行符。此外,这些资源有意采用 es6 模板字符串的格式。

在线演示

0 投票
2 回答
60 浏览

javascript - 获取变量以在 JavaScript 字符串中使用以收集 API 数据

我正在尝试连接到 API。通过使用静态字符串执行此操作,它可以正常工作,但是当我使用变量执行此操作时,它似乎不起作用。

这就是我的代码的样子:

因此,当我将其删除${movie}并替换'taken'为字符串时,它可以正常工作。