Coffeescript一直在函数作用域之外编译缩进的代码

coffeescript keeps compiling indented code outside the function scope

本文关键字:编译 缩进 代码 一直 函数 作用域 Coffeescript      更新时间:2023-09-26

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加载函数之外。这是怎么回事?我缩进的方式有什么问题??

大胆猜测:您将制表符和空格混合用于缩进。如果你的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,你的眼睛不会注意到。