标签: coffeescript

CoffeeScript中的函数

我正在尝试将functionJavascript 转换为CoffeeScript.这是代码:

function convert(num1, num2, num3) {
    return num1 + num2 * num3;
}
Run Code Online (Sandbox Code Playgroud)

但是我怎么能在CoffeeScript中做到这一点?


我正在尝试从这样的HTML源运行该函数:

<script type="text/javascript" src="../coffee/convert.js"></script>

<script type="text/javascript">
    convert(6, 3, 10);
</script>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我得到一个错误说: ReferenceError: Can't find variable: convert

怎么纠正这个?

javascript coffeescript

49
推荐指数
4
解决办法
3万
查看次数

49
推荐指数
3
解决办法
1万
查看次数

环境检测:node.js或浏览器

我正在开发一个需要在客户端和服务器端工作的JS应用程序(在浏览器和Node.js中的Javascript中),我希望能够重用代码的各个部分.用于双方.

我发现这window是一个只能在浏览器和global节点上访问的变量,所以我可以检测代码在哪个环境中执行(假设没有脚本声明window变量)

他们是两个问题.

  1. 我应该如何检测代码在哪个浏览器中运行.例如,这段代码是否正常.(此代码是内联的,意味着它被一些全局代码包围,可以在两种环境中重用)

    if window?
        totalPath= "../examples/#{path}"
    else
        totalPath= "../../examples/#{path}"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如何在两种环境中使用全局变量?现在,我正在做以下事情,但这确实感觉不对.

    if window?
        window.DocUtils = {}
        window.docX = []
        window.docXData= []
    else
        global.DocUtils= {}
        global.docX = []
        global.docXData = []
    
    Run Code Online (Sandbox Code Playgroud)

javascript browser-detection node.js coffeescript

48
推荐指数
6
解决办法
2万
查看次数

我的JavaScript模式/实践很糟糕.我应该在哪里寻求帮助?

在过去的几年里,我几乎专注于后端任务,我刚刚注意到,在我缺席的情况下,大多数JavaScript(和CoffeeScript)项目都变得更加漂亮.

我主要在rails环境中工作,几乎所有的JavaScript/jQuery都看起来像这样:

$(an_element).an_event(function() {
  stuff_i_want_to_do;
})

$(another_element).some_other_event(function() {
  some_other_stuff_i_want_to_do;
})
Run Code Online (Sandbox Code Playgroud)

抛开回调,这几乎就是它.

无论如何,只是浏览一些其他人的代码,并注意到许多javascripters在我不在的时候变得更漂亮.这并不复杂,但它是我所见过的更新/更好的JavaScript方法的典型:

jQuery -> 
  if $('#products').length
    new ProductsPager()

class ProductsPager
  constructor: (@page = 1) ->
    $(window).scroll(@check)

  check: =>
    if @nearBottom()
      @page++
      $(window).unbind('scroll', @check)
      $.getJSON($('#products').data('json-url'), page: @page, @render)
#

  nearBottom: =>
    $(window).scrollTop() > $(document).height() - $(window).height() - 50

  render: (products) =>
    for product in products
      $('#products').append Mustache.to_html($('#product_template').html(), product)
    $(window).scroll(@check) if products.length > 0
Run Code Online (Sandbox Code Playgroud)

我一直在寻找有关JavaScript(和/或CoffeeScript)的现代最佳实践/模式的资源,但我没有太多运气.所以简而言之,我应该在哪里加快速度:最好的javascript/coffeescript现代模式和实践?

javascript jquery ruby-on-rails coffeescript

47
推荐指数
2
解决办法
3941
查看次数

从CoffeeScript中的数组中删除值

我有一个数组:

array = [..., "Hello", "World", "Again", ...]
Run Code Online (Sandbox Code Playgroud)

我怎么能检查阵列中是否有"世界"?然后删除它,如果它存在?并提到"世界"?

有时候我可能想用正则表达式匹配一个单词,在这种情况下我不会知道确切的字符串所以我需要引用匹配的字符串.但在这种情况下,我肯定知道这是"世界",这使它更简单.

谢谢你的建议.我找到了一个很酷的方法:

http://documentcloud.github.com/underscore

javascript node.js coffeescript

47
推荐指数
5
解决办法
4万
查看次数

coffeescript多行字符串编译成多行字符串

怎么来这个字符串

"answer 
 to life 
 the universe 
 and everything
 is
 #{40+2}
"
Run Code Online (Sandbox Code Playgroud)

汇编成

"  answer   to life   the universe   and everything  is  " + (40 + 2) + "";
Run Code Online (Sandbox Code Playgroud)

我如何强制coffescript保持多线(保持字符串插值完整):

 "answer \ 
 to life \
 the universe \
 and everything \
 is \
 "+(40+2)
Run Code Online (Sandbox Code Playgroud)

coffeescript

47
推荐指数
2
解决办法
2万
查看次数

在Save上编译CoffeeScript?

反正有没有在保存时轻松编译CoffeeScript?我正在使用TextMate或Sublime Text 2.

javascript textmate node.js coffeescript

45
推荐指数
2
解决办法
1万
查看次数

Coffeescript || =类比?

我主要是一个Rails开发人员,所以在为我公司的Hubot实例添加一个小脚本时,我希望能够完成以下任务:

robot.brain.data.contacts ||= {}
Run Code Online (Sandbox Code Playgroud)

或者,如果它尚不存在,则仅生成此新哈希.想法是我希望通过脚本动态添加联系人数组,这样我就不必修改Hubot的源代码了,我显然不想覆盖我添加的任何联系人.

问题:是否有像Rails || =这样的快速小构造,我可以在Coffeescript中使用它来实现上述目标?

干杯.

ruby-on-rails coffeescript

45
推荐指数
3
解决办法
9479
查看次数

如何查看AngularJS/UI-Router中配置的状态?

有没有办法看到所有已经开启的州$stateProvider

在这种情况下,我希望我的状态分配分布在许多文件中.我想在不同的文件中runconfig在不同的文件中检查构建的状态.

例如:

# component1.coffee
angular.module('zoo').config ($stateProvider) ->
  $stateProvider.state 'component1',
    url: '/component1'
    template: _template
    controller: 'Component1Ctrl'

# component2.coffee
angular.module('zoo').config ($stateProvider) ->
  $stateProvider.state 'component2',
    url: '/component2'
    template: _template
    controller: 'Component2Ctrl'

# componentNavigation.coffee
angular.module('zoo').run ($state) ->
  console.log 'All configured states:', $state.configuredStates # doesn't exist.
Run Code Online (Sandbox Code Playgroud)

有什么东西会列出这两个州,component1并且component2

coffeescript angularjs angular-ui angular-ui-router

45
推荐指数
2
解决办法
2万
查看次数

如何使用JSDoc记录CoffeeScript源代码?

我有一些用CoffeeScript编写的代码,我想用Google Closure Compiler优化生成的JavaScript,所以这些文件需要用JSDoc记录.

我的问题是,如何记录*.coffee文件以生成包含用于闭包编译器的工作JSDoc的javascript?

还有一个问题:有没有办法在*.coffee中保留单行注释?

javascript google-closure-compiler jsdoc coffeescript

44
推荐指数
4
解决办法
2万
查看次数