Angular Coffeescript到Javascript的转换-下一个函数被视为上一个函数的主体

Angular Coffeescript到Javascript的转换-下一个函数被视为上一个函数的主体,javascript,angularjs,coffeescript,Javascript,Angularjs,Coffeescript,在使用coffeescript时,我有时会遇到这种奇怪的问题。示例如下: 咖啡脚本: $scope.function1=()-> console.log(“功能1”) $scope.function2=()-> console.log(“功能2”) Javascript: $scope.function1=function(){ 控制台日志(“功能1”); 返回$scope.function2=函数(){ 控制台日志(“功能1”); } 为什么第二个函数位于第一个函数的内部?非常感谢您提供的任何

在使用coffeescript时,我有时会遇到这种奇怪的问题。示例如下:

咖啡脚本:

$scope.function1=()->
console.log(“功能1”)

$scope.function2=()->
console.log(“功能2”)

Javascript:

$scope.function1=function(){
控制台日志(“功能1”);
返回$scope.function2=函数(){
控制台日志(“功能1”);
}


为什么第二个函数位于第一个函数的内部?非常感谢您提供的任何帮助。但这并不是一直都在发生。

在CoffeeScript中,缩进是有意义的。您在问题中发布的代码可以按照您的需要进行翻译。但是,如果第二个函数相对于第一个函数缩进,则:

$scope.function1 = () ->
  console.log("function 1")

  $scope.function2 = () ->
    console.log("function 2")
…它以您显示的方式错误地翻译

也要确保在使用空格或制表符时保持一致

但是,正如问题中所引用的,这很好:

$scope.function1 = () ->
    console.log("function 1")

$scope.function2 = () ->
    console.log("function 2")
变成

$scope.function1 = function() {
  return console.log("function 1");
};

$scope.function2 = function() {
  return console.log("function 2");
};

在CoffeeScript中,缩进是有意义的。问题中发布的代码可以按照您的意愿进行翻译。但是,如果第二个函数相对于第一个函数缩进,则:

$scope.function1 = () ->
  console.log("function 1")

  $scope.function2 = () ->
    console.log("function 2")
…它以您显示的方式错误地翻译

也要确保在使用空格或制表符时保持一致

但是,正如问题中所引用的,这很好:

$scope.function1 = () ->
    console.log("function 1")

$scope.function2 = () ->
    console.log("function 2")
变成

$scope.function1 = function() {
  return console.log("function 1");
};

$scope.function2 = function() {
  return console.log("function 2");
};

在CoffeeScript中,缩进是有意义的。问题中发布的代码可以按照您的意愿进行翻译。但是,如果第二个函数相对于第一个函数缩进,则:

$scope.function1 = () ->
  console.log("function 1")

  $scope.function2 = () ->
    console.log("function 2")
…它以您显示的方式错误地翻译

也要确保在使用空格或制表符时保持一致

但是,正如问题中所引用的,这很好:

$scope.function1 = () ->
    console.log("function 1")

$scope.function2 = () ->
    console.log("function 2")
变成

$scope.function1 = function() {
  return console.log("function 1");
};

$scope.function2 = function() {
  return console.log("function 2");
};

在CoffeeScript中,缩进是有意义的。问题中发布的代码可以按照您的意愿进行翻译。但是,如果第二个函数相对于第一个函数缩进,则:

$scope.function1 = () ->
  console.log("function 1")

  $scope.function2 = () ->
    console.log("function 2")
…它以您显示的方式错误地翻译

也要确保在使用空格或制表符时保持一致

但是,正如问题中所引用的,这很好:

$scope.function1 = () ->
    console.log("function 1")

$scope.function2 = () ->
    console.log("function 2")
变成

$scope.function1 = function() {
  return console.log("function 1");
};

$scope.function2 = function() {
  return console.log("function 2");
};

仔细检查你的缩进,那一定是问题。仔细检查你的缩进,那一定是问题。仔细检查你的缩进,那一定是问题。仔细检查你的缩进,那一定是问题。我也认为缩进一定是问题。但即使我把所有东西都去掉,从头开始做,这个问题也会发生arrange函数如将作用域函数从控制器顶部移动到控制器底部,它正在得到修复。同时,第一个函数中的空返回语句有时也会修复它。这是否与我的与制表符/空格等相关的文本编辑器设置有关?我正在使用升华文本3。谢谢。@Saravanaselvan:复制和将您的问题版本粘贴到CoffeeScript.org网站上的“Try CoffeeScript”小部件中,可以正确地转换它。因此它肯定是缩进。我会确保您的编辑器设置为插入空格,而不是制表符,因为这通常会更可靠。(嗯,我只是不使用CoffeeScript——这是原因之一。:-)特别是现在ES6已经定稿了,因为有很好的传输工具。)谢谢你的建议。我也认为缩进一定是问题所在。但即使我删除所有内容并从头开始做,这个问题也会发生。当我重新排列函数时,比如将范围函数从控制器顶部移动到控制器底部,它就变得很简单ting已修复。第一个函数中的空返回语句有时也会修复它。这与我的与制表符/空格等相关的文本编辑器设置有关吗?我正在使用SublimiteText 3。谢谢。@Saravanaselvan:将问题的版本复制并粘贴到“Try CoffeeScript”中coffeescript.org网站上的小部件正确地转换了它。所以它肯定是缩进。我会确保你的编辑器设置为插入空格,而不是制表符,因为这通常会更可靠。(好吧,我只是不使用coffeescript——这是原因之一。:-)特别是现在ES6已经定稿了,因为有很好的传输工具。)谢谢你的建议。我也认为缩进一定是问题所在。但即使我删除所有内容并从头开始做,这个问题也会发生。当我重新排列函数时,比如将范围函数从控制器顶部移动到控制器底部,它就变得很简单ting已修复。第一个函数中的空返回语句有时也会修复它。这与我的与制表符/空格等相关的文本编辑器设置有关吗?我正在使用SublimiteText 3。谢谢。@Saravanaselvan:将问题的版本复制并粘贴到“Try CoffeeScript”中coffeescript.org网站上的小部件正确地转换了它。所以它肯定是缩进。我会确保你的编辑器设置为插入空格,而不是制表符,因为这通常会更可靠。(好吧,我只是不使用coffeescript——这是原因之一。:-)特别是现在ES6已经定稿了,因为有很好的传输工具。)谢谢你的建议。我也认为缩进一定是问题所在。但即使我删除所有内容并从头开始做,这个问题也会发生。当我重新排列函数时,比如将范围函数从控制器顶部移动到控制器底部,它就变得很简单ting已修复。第一个函数中的空返回语句有时也会修复它。这与我的与制表符/空格等相关的文本编辑器设置有关吗?我正在使用SublimiteText 3。谢谢。@Saravanaselvan:将问题的版本复制并粘贴到“Try CoffeeScript”中coffeescript.org网站上的小部件正确地转换了它。所以它肯定是缩进。我会确保你的编辑器设置为插入空格,而不是制表符,因为这通常会更可靠。(好吧,我只是不使用coffeescript——这是原因之一。:-)特别是现在ES6已经定稿为