我在玩编辑咖啡脚本的游戏,但我完全是个emacs新手
在coffeescript模式中,有一些键绑定,如用于编译缓冲区的“A-r”和用于打开coffeescript repl的“A-M-r”(我假设“M”是meta)。但是我找不到“A”指的是哪个键(用谷歌搜索A-)真的很困难。我解决了这个问题。“A-r”显然是mac上的命令键和r 可能假设你有一个兼容PC的键盘和一个“Alt”键。与…相比。。。在非mac上是什么?不,窗口键是super(用s表示)a-与alt+相同。在某些系统上,它与meta不
在使用Rails 3.1(rc5)时,我注意到我包含Rails(或链轮)的任何coffeescript文件都在顶部和底部添加初始化javascript。换句话说,将输出一个空白的.js.coffee文件,如下所示:
(function() {
}).call(this);
这让人恼火,因为它破坏了我的javascript范围(除非我真的不知道自己在做什么)。我通常将我的所有javascript类分离到单独的文件中,我认为让函数代码包装我的类只会使它们彼此超出范围。或者,至少,我似乎无法访问它们
似乎CoffeeScript会自动返回作用域中的最后一项。我可以避免使用此功能吗?您必须显式地不返回任何内容,或者在函数底部保留一个计算为未定义的表达式:
fun = ->
doSomething()
return
或:
这是doc在使用理解时的建议:
在这些情况下,请小心不要意外返回理解结果,方法是在函数底部添加有意义的返回值,如true或null
但是,您可以编写如下包装:
voidFun = (fun) ->
->
fun(ar
最近,在处理Backbone.JS/jQuery/CoffeeScript项目时,我发现自己陷入了回调和计时问题的混乱之中。在继续之前,我需要等待一些事情完成,然后发现自己陷入了嵌套回调的混乱中。。。这很容易混淆,也很难调试。然后,我找到了两种可能的解决方案
IcedCoffeeScript看起来非常简单,只需添加await和defer。然而,我想知道它是否会留在那里?关于StackOverflow,这里只有两个问题?与咖啡脚本相比,关于它的讨论不多
另一件事是这两种方法之间有什么区别,它们似乎
现在,我在《咖啡脚本》中这样做:
keys = (key for key of data)
values = (v for k,v of data)
其中,数据是一个对象(不是数组)。我试图创建两个数组,其中键是一个属性名数组,值是一个值数组
这将编译为:
var键、值;
keys=(函数(){
var_结果;
_结果=[];
用于(输入数据){
_结果:按键;
}
返回结果;
})();
值=(函数(){
var_结果;
_结果=[];
用于(数据中的k){
v=数据[k];
_结果:推(v
这里是n00b。我试图将任意模板“注入”到另一个模板中。但似乎我做错了:)
whatever.html:
<template name="parent">
{{child}}
</template>
<template name="child1">
I'm child 1
</template>
<template name="child2">
I'm child 2
</template>
这将创建“
我试图在我的CoffeeScript代码中创建一种全局单例对象:
window.MyLib =
Foos: {}
Bars: {}
Client: ->
@_client ||= (
someVar = 'foo'
new ExpensiveClient(someVar)
)
# ...
MyLib.Client.performSomeAction()
但是,代码实际上要求我这样做:
MyLib.Client().perform
总有一天,我的咖啡文件中会有一个输入错误,它会破坏编译器,然后关闭grunt服务器,并显示一条“编译失败”的错误消息
如何防止服务器退出并一直监视到下一次成功编译?在运行grunt时,可以使用--force选项,以防止任务出错时服务器退出。例如:
grunt coffee--force我通常让节点管理器在我的输出目录上运行,而不与grunt脚本进行任何交互。我的咖啡脚本编译任务将出错(给我一个警告),但它根本不会停止我的服务器。然后您可以修复错误,保存并等待服务器重新启动
如果您的屏幕空间允许,
是否可以调用函数并在同一行返回:
foo() and return if conditon == true
而不是拆分为多行?尝试时,return突出显示,出现以下错误:
error: cannot use a pure statement in an expression
return不是CoffeeScript中的表达式,和的形式如下:
expr和expr
由于return不是一个表达式,因此在说出expr和return时,必须看到所看到的错误
不过,有多种方法可以解决这个问题,您选择哪
我知道如果我在没有回调的情况下进行测试,那么我就可以进行同步测试。但是不起作用。尝试在测试中使用局部作用域变量。大概是这样的:
describe "temp", ->
input_output = [
{ input:"[mocha] [supertest]", output: ["asdf", "asdf"] }
{ input:"아버지가방에들어가신다", output: [ '아버지가방에들어가신다', '아버지', '가방', '에들',
我不熟悉CoffeeScript,似乎找不到任何使用Javadoc语法的CoffeeScript文档生成器。我能找到的唯一一个是CoffeeScript编译器的补丁
那么,您使用什么从CoffeeScript上的Javadoc注释生成文档,或者如何记录您的函数参数和返回值呢?因此,Javadoc语法从未真正受到JavaScript开发人员的欢迎。有人使用类似的东西,特别是谷歌,但它与JS有点不一致,JS没有静态类型,允许任何函数使用任意数量的参数
如果你想用CoffeeScript创建漂亮的文档
我边喝咖啡边聊天;默认情况下,每当我保存时,Chirpy都会将CoffeeScript编译为foo.js,并将该JavaScript缩小为foo.min.js
根据文件名的不同,有使用不同缩微器的设置,但在开发过程中,我根本不想缩微,以使调试更容易,并避免web服务/外部工具命中。我可能遗漏了一些明显的东西,但我看不到一种方法来做到这一点。我已经尝试为我的脚本创建一个Minify=“False”的配置文件,但它仍在尝试执行缩小
有没有办法设置Chirpy,只输出我的咖啡脚本的JavaScript
例如,给定以下结构
pages = [
[
{ myvar: 1},
{ myvar: 2},
{ myvar: 3},
]
];
我如何表达对富灵(类似python)的理解
v.myvar for p in pages for v in p
阿福,你不能,看:
在此期间的一个解决方法(直到CoffeeScript得到改进):
哪些产出:
[ 1, 2, 3 ]
谢谢:)
根据定义:
Module.init的实现方式如下:
Module.init = Controller.init = Model.init = (a1, a2, a3, a4, a5) ->
new this(a1, a2, a3, a4, a5)
为什么是这样?为什么定义5个属性而不使用attrs…这样属性就不会固定为5
new this(attrs...)
要么有人不知道splats,要么他们觉得这样做更干净,要么他们认为不使用一堆额外的逻辑来处理arguments对象会更高效。
因此,当索引为0时,我想将其打印出来:
a = [ 1, 2, 3 ]
for i of a
if i == 0
console.log a[i]
但没有产出
i==0从来都不是真的…这是因为i在a中的项目上循环时只会是1、2或3,而不是索引号
这与您上面描述的工作方式相同:
a = [ 1, 2, 3 ]
for i in [0..a.length]
if i == 0
console.log a[i]
我以字符串的形式返回索引,如果
我想更改子类中回调函数的绑定,以便以下代码指示20,而不是10:
class A
@in = 10
@b: =>
alert(@in)
class B extends A
@in = 20
@w: ->
window.setTimeout(@b,500)
B.w()
如果我使用“thin arrow”来定义A.b,那么绑定到超时调用函数,因此@in是未定义的。当我对它进行fat箭头标记时,它绑定到父类A。我希望它绑定到子类B,而无需在子类中重
自从Meteor 0.6.0发布和添加之后,我在使用CoffeeScript类时遇到了一个问题,每个类都在各自的文件中定义
foo.coffee:
class Foo
...
class Subfoo extends Foo
...
咖啡:
class Foo
...
class Subfoo extends Foo
...
正如所料,由于Meteor 0.6.0中引入的更改,我得到以下错误:
ReferenceError:未定义Foo
我的问题是:如果CoffeeScr
我试图在Mocha测试中运行一些数据库查询,但遇到了一些问题
以下是测试(使用猫鼬):
用于运行测试的命令:
mocha --compilers coffee:iced-coffee-script --require iced-coffee-script --require mocha --colors --recursive test"
错误发生在第一行:
ReferenceError: err is not defined
我只能假设它正试图使用普通的CoffeeScript来执行此代码
标签: Coffeescript
marionettemodalviewcontrollerbackbone-viewseco
我尝试使用这个主干扩展来制作可堆叠的模态
它说它与木偶兼容,所以我一直在尝试使用它来创建视图。但问题是,它似乎不允许我使用生态模板,网站中的示例仅使用下划线模板
对于使用eco模板声明木偶视图,我需要做的是:
class Views.ItemView extends Marionette.ItemView
template: "items/show/templates/item"
但是我不能用这种方式为主干定义模板。模态视图类,我也不能将视图传递到模板中,我尝试使用视图可堆叠部分,但我对
我正在用angularfire编写一个应用程序。它包括一个node.js服务(在我自己的服务器上运行),该服务定期对数据进行“填充”。我正在尝试在处理程序上写入.以更新父记录中的“计数”字段。所以我从以下几点开始:
guilds = fb.child('guilds')
guilds.on 'child_added', (guildsnap) ->
console.log 'First read of guild: ' + guildsnap.name()
guild_applic
在JavaScript中,我在document.documentElement中进行了这个测试。如果事件存在(即使为空),则其计算结果为true,否则为false。我不知道如何在CoffeeScript中做同样的事情。完全按照原样编写它就意味着使用一个\uuu indexOf函数,而该函数不会执行相同的操作(它总是返回false)
您也可以尝试使用'onmousemove'查找始终存在的事件。使用的:
'ontouchstart' of document.documentElement
发件人
我想向我的客户发布在线用户列表,并出于安全原因排除除“用户名”以外的所有属性。我有以下服务器端发布:
Meteor.publish 'onlineUsers', ->
users = Meteor.users.find
"services.resume.loginTokens.0":
$exists: true
它工作正常,产生以下输出:
console.log users.fetch()
>> [{
id:
在中,如何获取默认海龟的相对x、y坐标?
如果返回0,0,为什么下面的代码不起作用
fd 100
write getxy()
如何在调用getxy之前等待海龟完成移动?使用donefn。它在所有动画之后调用回调函数fn
我正试图在Meteor中使用coffeescript作为客户端代码,但它似乎不起作用
我创建了client/views/welcome/index.coffee,内容如下:
console.log 'this is welcome index'
但是控制台没有记录任何内容,我看不到客户端加载的文件。运行以下命令将coffeescript包添加到Meteor,这将启用coffeescript源的传输:
meteor add coffeescript
否则,coffeescript文件将被静默忽
我有一个名为“配料”的集合,在可编辑的表格中呈现给用户:
<div class="container col-sm-12">
<table id="ingredients_table" class="table table-hover table-bordered">
<thead>
<tr>
<th>Name</th>
我正在使用这个库,我的代码都在里面。根据我的定义,我有:
app.use swagger.init app,
apis: ['./src/routes.coffee', './src/models.yml']
apiVersion: '0.1.0'
basePath: "http://localhost:#{port}"
info:
title: 'My API'
description: 'A complete listing of all API functi
我有下面的coffeescript,它可以正常工作,只是当加载图像需要一段时间时,它会在加载图像之前运行,然后没有达到预期效果:
ready = ->
jQuery ->
$('.box').find('img').each ->
imgClass = if @width / @height > 1 then 'wide' else 'tall'
$(this).addClass imgClass
return
re
编译成
fun=->
views = []
views = 123
fun()
console.log views
和日志123,而我希望它返回[]
在fun之前声明views将产生所需的结果,但我的代码风格要求我首先声明所有函数,然后分配变量。
在这种情况下可以做什么?特别是我希望coffeescript不产生var视图在javascript内部fun如果您想fun了解外部视图,那么您必须在fun之前定义视图:
var fun, views;
fun = functio
我想尝试将coffeescript集成到我的开发过程中。但在我看来,我必须创建一个bat文件,它迭代一组咖啡文件并输出js文件。每次我写一个bat文件时,我都会问自己:有没有更好的方法
这让我想知道:是否有一种Windows应用程序,在保存一个咖啡文件时可以监视一个目录或一个文件,并吐出一个或多个js文件?我正在考虑建造一个,但不想重新发明轮子。我环顾四周,发现了一些相似的东西,但并没有什么能让它超越Windows上的“运行此命令行”
编辑:已经标记了一个答案,但10个月后看这个答案是:。因为它
鉴于此
class A
opt: {}
init: (param) ->
console.log "arg is ", @opt.arg
@opt.arg = param
a = new A()
a.init("a")
console.log "first", a.opt.arg
b = new A()
b.init("b")
console.log "second", b.opt.arg
这是输出
arg is undefined
first
我想为CoffeeScript创建一个非常简单的浏览器IDE。现在基本上是一个文本框和一个提交按钮。然后,所有代码都将提交给服务器执行
我确实想要的一件事是,在浏览器中以person类型突出显示语法。一些像冰镇咖啡的东西,用来制作精美的文字。有没有办法进行这种语法突出显示?您可以尝试在页面中嵌入。它有许多漂亮的颜色主题用于语法突出显示,并且似乎支持CoffeeScript(尝试CoffeeScript文档和模式)。我知道这篇文章很旧,但您可以始终使用CodeMirror,这是JSFIDLE使用的
我想我忘了这个词,所以欢迎编辑标题。我想做的是为我的$scope对象分配多个函数,如下所示:
$scope.
widgetDropped = (event, ui) ->
(console.log "widget dropped")
dragCallback = (event, ui) -> # fails
console.log("started drag") # fails
因此,前3行可以编译,但
您好,我正在使用compass(gem)创建项目,并尝试使用coffee脚本和compass。我安装了coffee脚本gem,但现在如何将其包括在compass项目中。有没有办法更改运行脚本的config.rb文件?像
css_dir = "attr/css"
sass_dir = "attr/sass"
images_dir = "attr/images"
javascripts_dir = "attr/js"
差不多
coffee-script_dir = "attr/coffee"
我
可以使用嵌入式Coffeescript在帖子中访问帖子的标记,如下所示:
<div class="tags">
Tags:
<ul>
<% for tag in @document.tags: %>
<li><a class="tag_item" href="<%= @getTagUrl(tag) %>"><%= tag %></a></li>
<%
我正在使用这个框架创建一个小部件。基本上,它使用sinatra、蝙蝠侠和coffee脚本来创建仪表板
我的代码基于
我有以下代码
咖啡剧本
class Dashing.Countdown extends Dashing.Widget
ready: ->
setInterval(@startCountdown, 500)
startCountdown: =>
color_available
current_timestamp = Math.ro
试图提高我的咖啡脚本技能,所以我想我应该掩盖这一点。然而,它并没有像预期的那样工作。具体来说,redraw函数似乎没有被调用
这个很好用
// Create a new Selection object extended from Selection
var CircleSel = function(){ };
// Set the custom selection's prototype object to be an instance
// of the built-in Se
我正在寻找一些关于在不学习纯JavaScript的情况下学习CoffeeScript的见解
我目前编写CSS/SASS和HTML/HAML,我想学习JavaScript。我知道非常基本的JavaScript,但我还没有走得很远。我真的很喜欢CoffeeScript的语法,它对我来说更有意义
仅仅学习咖啡脚本会不会让我的学习变得一团糟?是的,绝对要先学习javascript!Coffeescript编译成它,当客户端运行代码时,它将是原始javascript。在不理解语言的情况下,您希望如何调试它
我有一个咖啡脚本代码
for y in [coY - limit .. coY + limit]
for x in [coX - limit .. coX + limit]
我在寻找如何提高代码速度的方法,并找到了它编译成什么:
for (y = _i = _ref = coY - limit, _ref1 = coY + limit; _ref <= _ref1 ? _i <= _ref1 : _i >= _ref1; y = _ref <= _ref1 ?
我在尝试将splat转发给超级构造函数时遇到了麻烦。大概是这样的:
class Mom
constructor: (vars...) ->
[code]
class Son extends Mom
constructor: (vars...) ->
super(???)
[code]
问题是:
我如何调用超级构造函数来传递子收到的splat参数?超级变量…可能就是您要寻找的。超级非常神奇
如果将其编译为对超级构造函数
我环顾四周,发现了许多问题,它们都是解决问题的方法,但它们都不能准确地解决我的问题,所以我想知道我在解决问题的方法上是否犯了一些根本性的错误
在下面的循环中,我循环了一些从JSON解析的数据。对于每组数据,我想用string=new Robot扩展我的class Robot,其中string是一个字符串
目前,我的代码没有产生任何错误,并成功创建了新的机器人,但由于它们的名称是字符串,因此尝试使用robot1.move()或robot2.doSomeOtherClassyThing()访问它们时
在Play 2 framework的文档中指出,对于咖啡脚本文件的bare编译,应该使用:
coffeeScriptOptions:=Seq(“裸”)
我的Build.scala看起来像这样,我不知道如何添加该选项
val main = play.Project(appName, appVersion, appDependencies).settings(
// Add your own project settings here
)
这里还讨论了:
val main =
给定以下代码:
outer=1
f=->
local=1
outer=0
local+outer
coffeescript为local创建var,但使用outer:
var f, outer;
outer = 1;
f = function() {
var local;
local = 1;
outer = 0;
return local + outer;
};
这就是你的期望
但是,如果在函数中使用局部变量,则该变量是否声明为局部变量取决于外部作用域。
我对咕噜有点困惑。首先,我很喜欢这个工具,但是文档(或者可能只有我一个人)并不是很聪明
所以我有这样的想法:
coffee:
options:
sourceMap: true
files: [{
expand: true
cwd: '<%= yeoman.app %>/scripts'
src: '{,*/}*.coffee'
dest: '<%= yeoman.tmp %>/script
我第一次安装了casperjs并运行了示例脚本。第一个示例脚本(javascript)运行时没有发生任何事件。然后,我尝试运行我更喜欢的coffescript示例,并收到以下错误:
无法加载脚本test.coffee;检查文件语法
我一直在寻找答案,但“唯一的答案”中的答案对我不起作用。我能够将CoffeeScript(test.coffee)编译成JavaScript(test.js),然后再次运行编译后的JavaScript,没有任何不雅之处
我试图通过在casperjs文件中搜索错误消息来
我试图在模板中插入一个计算值
所以代码如下
Template.missions.inProgress = -> Missoins.find { #search query
}, {
transform: (mission) ->
mission.progress = calculateTimeLeft(mission.startTime, mission.timeRequired)
return mission
}
代码是有效的,但我如何使其
我能行
fun = if state then "a" else "b"
somefunction(fun, "param")
然而,我做不到
somefunction(if state then "a" else "b", "param")
咖啡1.8.0版。有什么好的理由吗?您是否尝试过函数if state然后a else b,param?什么是不能做?你有错误吗?谢谢。说到咖啡脚本,我一次又一次地陷入困境,没有看到明显的解决方案。。。
我想在对象数组上执行迭代。而不是写作
for item in items
for k, v in item
# Do Something
我想做一些类似的事情
for k,v of item in items
# Do something
不支持基于编译输出的:
var k, ref, ref1, v, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++
我已经将blueimp jquery文件上传集成到我的ruby应用程序中,并将maxchuk大小设置为1MB。现在,我正在尝试在第一次块上传后停止文件上传(意味着我需要1MB的文件),使用fileuploadchunkdone,但它不起作用
代码是用coffeescript编写的
.bind 'fileuploadchunkdone', (e, data) ->
if (!data.jqXHR)
data.errorThrown = 'abort'
当我从控制台运行此命令时
class MyClass
defaultOptions:
url: '/photos.json'
constructor: (@element, @options) ->
@photos = []
@init()
addPhotos: (photo) ->
@photos.push photo
request: ->
$.getJSON(this.defaultOptions.url).d
我在一个使用coffeescript的项目中工作,我必须动态地生成一个选择元素(combobox),我生成它。但是我想在最后一个select元素上触发一个事件,但是它不起作用,我这样写的
$("select:last").change ->
但它仅在我更改第一个select元素时触发事件。您是否尝试过在事件上使用
$('select:last').on 'chnage', ->
对于那些有相同问题的人,您可以这样做$(document.body)。在“更改”上,选择“最后一个”
1 2 3 4 5 6 ...
下一页 最后一页 共 18 页