标签: coffeescript

Coffeescript'this'在jQuery .each()中

我有一些像以下一样的咖啡因:

class foo:
    @bar = 'bob loblaw'

    processRows: ->
        $("#my-table>tr").each ->
            id = $(this).attr("id")
            @processRow id

    processRow: (id) ->
        console.log @bar + id
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:我需要this引用.each循环内部的上下文来获取id,但我也想this引用里面的类实例foo.processRow()---它目前没有.

使用函数_this = this外部的东西.each并传递它也不是一个很好的解决方案,因为我在里面引用了很多类变量processRow.

有什么想法吗?我错过了一些明显的东西吗 谢谢!

javascript coffeescript

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

require()来自JavaScript文件或REPL的CoffeeScript文件

我正在使用Node.js并希望将CoffeeScript合并到我的工作流程中.我有两个用例:

  1. 我希望能够编写哪些require()CoffeeScript模块的JavaScript文件
  2. 我希望能够从节点REPL中加载CoffeeScript模块

对于情况#1:我可以从编译.coffee.jsrequire().js模块,作为一种解决方法.

对于案例#2:现在我正在eval()输出coffee-script.compile().

有没有更好,更统一的方法来做到这一点?

javascript node.js coffeescript

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

从咖啡脚中留下`do ... while`循环......?

在CoffeeScript中,while循环是标准的:

while x()
   y()
Run Code Online (Sandbox Code Playgroud)

但是,以下1不起作用:

do
  y()
while x()
Run Code Online (Sandbox Code Playgroud)

对于第一个例子,这只是糖:

y() while x()
Run Code Online (Sandbox Code Playgroud)

CoffeeScript是否带有至少执行一次的内置循环?

1另外,do 一个关键字 - 它用于调用匿名函数.

coffeescript

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

我无法在Coffeescript交互模式(REPL)中编写多行代码

当我在coffeescript交互模式下键入多行时,出现错误.

为了exacmle,我想尝试以下代码.

kids =
  brother:
    name: "Max"
    age:  11
  sister:
    name: "Ida"
    age:  9
Run Code Online (Sandbox Code Playgroud)

显示此错误.

coffee> kids = 
Error: In repl, Parse error on line 1: Unexpected 'TERMINATOR'
  at Object.parseError (/usr/lib/coffeescript/parser.js:463:11)
  at Object.parse (/usr/lib/coffeescript/parser.js:533:22)
  at /usr/lib/coffeescript/coffee-script.js:26:22
  at Object.eval (/usr/lib/coffeescript/coffee-script.js:64:17)
  at Interface.<anonymous> (/usr/lib/coffeescript/repl.js:18:26)
  at Interface.emit (events:27:15)
  at Interface._ttyWrite (readline:309:12)
  at Interface.write (readline:147:30)
  at Stream.<anonymous> (/usr/lib/coffeescript/repl.js:35:17)
  at Stream.emit (events:27:15)
Run Code Online (Sandbox Code Playgroud)

我尝试使用'\'作为换行符,但显示了相同的错误.

coffee> kids = \
Error: In repl, Parse error on line 1: Unexpected '\'
  at Object.parseError (/usr/lib/coffeescript/parser.js:463:11)
  at Object.parse (/usr/lib/coffeescript/parser.js:533:22)
  at /usr/lib/coffeescript/coffee-script.js:26:22 …
Run Code Online (Sandbox Code Playgroud)

interactive multiline coffeescript read-eval-print-loop

52
推荐指数
1
解决办法
8300
查看次数

逐行调试CoffeeScript

有没有办法逐行调试CoffeeScript?

据我所知,它编译成Javascript.但这听起来可能会让调试变得痛苦.

debugging coffeescript

51
推荐指数
5
解决办法
3万
查看次数

在javascript中创建ISO日期对象

我有一个mongo数据库设置.在mongoDb中创建一个新的日期对象,以ISO格式创建一个日期对象,例如:ISODate("2012-07-14T00:00:00Z")

我使用node.js连接到mongo数据库并查询数据库.当我new Date()在javascript中创建一个新的日期对象()时,它会创建一个javascript日期对象,例如:Wed Mar 06 2013 14:49:51 GMT-0600 (CST)

有没有办法在javascript中创建ISO日期对象,以便我可以直接将对象发送到mongoDb并执行日期查询

我可以在mongoDb中执行以下查询

db.schedule_collection.find({
  start_date: { '$gte': new Date(2012, 01, 03, 8, 30) }
})
Run Code Online (Sandbox Code Playgroud)

但是当我从节点发送javascript日期对象时无法执行

mongodb cookbook提供了一个使用datetime模块查询mongo数据库的python示例,但没有提供任何使用javascript的示例.

任何帮助表示赞赏.提前感谢你

javascript mongodb node.js coffeescript

51
推荐指数
5
解决办法
10万
查看次数

默认功能参数排序

通过这个阅读,我找到了函数参数的默认值:

fill = (container, liquid = "coffee") ->
  "Filling the #{container} with #{liquid}..."
Run Code Online (Sandbox Code Playgroud)

这很整洁,但后来我尝试了这个:

fill = (container="mug", liquid = "coffee") ->
  "Filling the #{container} with #{liquid}..."

alert fill(liquid="juice")
Run Code Online (Sandbox Code Playgroud)

并得到了意想不到的警报"Filling the juice with coffee...".那么我试过这个:

fill = (container="mug", liquid = "coffee") ->
  "Filling the #{container} with #{liquid}..."

alert fill(null, "juice")
Run Code Online (Sandbox Code Playgroud)

它起作用了.虽然它不漂亮.有更好的方法,还是这是惯用的方式呢?

coffeescript

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

我可以在Heroku中运行coffeescript吗?

我有一个用CoffeeScript编写的node.js应用程序.

我想知道在Heroku上托管应用程序需要什么.

谢谢

heroku node.js coffeescript

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

如何在Slim模板中访问CoffeeScript引擎中的实例变量

我有一个Rails控制器,我在其中设置一个实例变量 -

@user_name = "Some Username"
Run Code Online (Sandbox Code Playgroud)

在我的.slim模板中,我使用咖啡引擎生成javascript,并希望从客户端sie javascript代码打印出用户名 -

coffee:
  $(document).ready ->
    name = "#{@user_name}"
    alert name
Run Code Online (Sandbox Code Playgroud)

但这是正在生成的JavaScript?

$(document).ready(function() {
    var name;
    name = "" + this.my_name;
    alert(name);
}
Run Code Online (Sandbox Code Playgroud)

如何在CoffeeScript代码中访问控制器实例变量?

我正在将其标记为haml,因为我猜测haml在使用CoffeeScript时会遇到同样的问题.

haml ruby-on-rails coffeescript ruby-on-rails-3 slim-lang

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

如何从.NET编译CoffeeScript?

我想编写一个HttpHandler,它可以动态编译CoffeeScript代码并发送生成的JavaScript代码.我尝试过MS [JScript] [1]和IronJS但没有成功.我不想使用[犀牛] [2],因为Java的依赖会使它太难分发.

CoffeeScript如何从.NET编译?

.net javascript coffeescript

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