Javascript coffeescript在函数范围外编译缩进代码
Coffeescript现在正在编译以下代码Javascript coffeescript在函数范围外编译缩进代码,javascript,coffeescript,Javascript,Coffeescript,Coffeescript现在正在编译以下代码 $ -> $("#debug").val "hey" for i in [0..3] m = new Message(5,5) text = "<div>#{m.message[m.message_id]}</div>" $("body").append(text) $-> $(“#调试”).val“嘿” 对于[0..3]中的i m=新消息(5,5) te
$ ->
$("#debug").val "hey"
for i in [0..3]
m = new Message(5,5)
text = "<div>#{m.message[m.message_id]}</div>"
$("body").append(text)
$->
$(“#调试”).val“嘿”
对于[0..3]中的i
m=新消息(5,5)
text=“#{m.message[m.message_id]}”
$(“正文”).append(文本)
进入:
$(函数(){
返回$(“#调试”).val(“嘿”);
});
对于(i=0;i这里有一个粗略的猜测:您正在混合制表符和空格进行缩进。如果您的咖啡脚本是这样的(当然,
是一个制表符):
$->
$(“#调试”).val“嘿”
对于[0..3]中的i
m=新消息(5,5)
text=“#{m.message[m.message_id]}”
$(“正文”).append(文本)
然后,您将获得所看到的输出,如果您的制表位设置为4,您的眼睛将不会注意到。+1大多数情况下,这就是问题所在。对于CoffeeScript,您确实需要使用将制表符转换为空格的编辑器,或者至少将其设置为显示“不可见”的模式。@Thilo:Same editor“rules”作为Python或任何其他重要的空白语言,我想。让我回到makefile时代。OTOH,它教会了我寻找制表符。讨厌制表符。这正是问题所在。在我将所有制表符转换为空格后,所有问题都解决了。@lkahtz:如果你能将编辑器配置为显示宽度为8的制表符,并且仍然缩进4个空格的话那么你将来也许可以避免这种不愉快。
$(function() {
return $("#debug").val("hey");
});
for (i = 0; i <= 3; i++) {
m = new Message(5, 5);
text = "<div>" + m.message[t.message_id] + "</div>";
$("body").append(text);
}
$ ->
$("#debug").val "hey"
<tab>for i in [0..3]
m = new Message(5,5)
text = "<div>#{m.message[m.message_id]}</div>"
$("body").append(text)