我有一些像以下一样的咖啡因:
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.
有什么想法吗?我错过了一些明显的东西吗 谢谢!
我正在使用Node.js并希望将CoffeeScript合并到我的工作流程中.我有两个用例:
require()CoffeeScript模块的JavaScript文件对于情况#1:我可以从编译.coffee到.js与require()该.js模块,作为一种解决方法.
对于案例#2:现在我正在eval()输出coffee-script.compile().
有没有更好,更统一的方法来做到这一点?
在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交互模式下键入多行时,出现错误.
为了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) 有没有办法逐行调试CoffeeScript?
据我所知,它编译成Javascript.但这听起来可能会让调试变得痛苦.
我有一个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的示例.
任何帮助表示赞赏.提前感谢你
通过这个阅读,我找到了函数参数的默认值:
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编写的node.js应用程序.
我想知道在Heroku上托管应用程序需要什么.
谢谢
我有一个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时会遇到同样的问题.
我想编写一个HttpHandler,它可以动态编译CoffeeScript代码并发送生成的JavaScript代码.我尝试过MS [JScript] [1]和IronJS但没有成功.我不想使用[犀牛] [2],因为Java的依赖会使它太难分发.
CoffeeScript如何从.NET编译?
coffeescript ×10
javascript ×4
node.js ×3
.net ×1
debugging ×1
haml ×1
heroku ×1
interactive ×1
mongodb ×1
multiline ×1
slim-lang ×1