在for循环中使用CoffeeScript字符串插值
我正在根据一组JSON数据填充<option>
元素的html <select>
列表。我想通过使用字符串插值来整理我的代码,但我无法正确地替换值。在for循环中使用CoffeeScript字符串插值
这里是工作的代码(无插值):
$list
.empty()
.append('<option value="' + item.Id + '">' + item.Name + '</option>' for item in data)
这里是我想要做的事情(不工作):
$list
.empty()
.append('<option value="#{item.Id}">#{item.Name}</option>' for item in data)
这里的一个例子JSON我正在使用:
[
{"Id":"1","Name":"Client-1"},
{"Id":"2","Name":"Client-2"}
]
替换不会发生,而是我只是得到一个列表填写正确的数字#{item.Name}
字符串。
是否有可能像这样在for循环中使用CoffeeScript字符串插值?
谢谢。
字符串插值仅适用于双引号字符串,而不是单引号字符串。
http://coffeescript.org/#strings
这应该工作:
$list
.empty()
.append("<option value=\"#{item.Id}\">#{item.Name}</option>" for item in data)
工作。谢谢。那么在所有CoffeeScript中使用双引号字符串是否是最佳做法?我不知道这些天使用什么。 – biofractal 2013-03-12 16:05:57
@biofractal:除非需要双引号,否则我会引用单引号,这样双引号表示有代码可以查看,而不仅仅是字符串文字。我在所有使用插值的语言中都做同样的事情。 – 2013-03-12 17:24:57
如果您在数据中使用'“”“#{item.Name}”“”您不必转义字符串中的每个双引号。 – shaedrich 2018-03-06 08:42:19
你要找的HTML模板,不具有CoffeeScript的。如果你想避免字符串连接,只需通过jQuery方法构建元素,而不是附加字符串。 – jbabey 2013-03-12 14:41:44