coffeescript一直在函数范围之外编译缩进代码

时间:2011-10-24 06:14:31

标签: 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)

成:

  $(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);
  }

整个“for”子句完全在jQuery加载函数之外。这里发生了什么?我的缩进方式有什么问题?

1 个答案:

答案 0 :(得分:3)

这是一个疯狂的猜测:你正在混合标签和空格来缩进。如果您的CoffeeScript是这样的(当然<tab>是单个制表符):

$ ->
    $("#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)

然后你会得到你正在看到的输出,如果你的制表位设置为4,你的眼睛就不会注意到。