标签: coffeescript

是否有与红宝石公寓相当的CoffeeScript?

我发现了一些快速谷歌搜索的JavaScript测试框架:Jasmine,jsUnity,JSpec,YUI Test,JsUnit,QUnit

我确信这绝不是一份详尽的清单.

有没有人在其中一个框架中编写CoffeeScript koans,类似于EdgeCase ruby​​ koans?

我真的很喜欢经历他们并经历蟒蛇科郎.每次练习都显着提高了我的语言舒适度,我真的希望CoffeeScript能够进行类似的练习.

coffeescript

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

如何使用循环变量在循环内定义事件处理程序?

for a in [1,2,3]
  $('body').click (x) =>
    alert a
Run Code Online (Sandbox Code Playgroud)

当我点击身体时,它会发出三次警报.我希望它提醒1,2和3.

javascript coffeescript

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

Backbone动态创建'el'不绑定事件

像许多其他用户一样,我有'el'和事件的问题.在我的情况下,我已经测试了多个解决方案,包括使用默认的el(只是'')设置tagName,使用jQuery选择器将el设置为选择器,并为DOM做好准备.这些解决方案中的每一个都无法绑定事件,除了默认的el和tagName在生成html时都失败了.相关代码查看

$ ->
   class Aggregator.Views.Streams.StreamView extends Backbone.View
      template:JST["backbone/templates/stream"]
      el: $('.item')
      events:
       "click div" : "testing"
      initialize: (model)->
       console.log @el
       _.bindAll this , 'render'
       @model.bind 'change', @render
       @model.view = @
       @render()
       @delegateEvents()
      render: ->
       $(@el).html  "test"
       console.log @el
       @
      testing: ->
       alert "EVENT"
       #@model.clear()
Run Code Online (Sandbox Code Playgroud)

调用视图的函数(从另一个视图中提取)

view = new Aggregator.Views.Streams.StreamView({model: stream})
    console.log view.el
    $(@el).append view.render().el
Run Code Online (Sandbox Code Playgroud)

我有点困惑,我已设置el但它要么不创建,要么它不绑定事件.我已经尝试等待DOM加载并将el传递给构造函数但没有成功.对我最明显的错误的任何帮助将不胜感激.

javascript javascript-events coffeescript backbone.js

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

coffeescript模板中出现意外的“ LOGIC”

在部分.js.coffee类型的视图中包含此代码(将其呈现为视图而不是资产):

<% if @followed_car_ids.present? %>
for car_id_and_path in <%= @followed_car_ids_and_paths.to_json %>
  toggle_follow(car_id_and_path[0], true, car_id_and_path[1])
<% end %>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

@followed_car_ids_and_paths = @followed_cars.map{|car| [car.id, url_for(current_user.car_subscriptions.find_by_car_id(car))]}
Run Code Online (Sandbox Code Playgroud)

请注意,是否在视图中放置地图(或收集)并不重要。如果我输入一个简单的字符串而不是也不起作用url_for(...。

它给出了这个错误:

ActionView::Template::Error (Error: Parse error on line 1: Unexpected 'LOGIC'):
    1: <% if @followed_car_ids.present? %>
    2: for car_id_and_path in <%= @followed_car_ids_and_paths.to_json %>
    3:   toggle_follow(car_id_and_path[0], true, car_id_and_path[1])
    4: <% end %>
  app/views/general_ajax/_update_followed_cars.js.coffee:1:in `_app_views_general_ajax__update_followed_cars_js_coffee__3478461849674996439_70355260673980'
Run Code Online (Sandbox Code Playgroud)

当我=从<%=第2行中删除并在错误停止之前添加某种虚拟数组时:

for car_id_and_path in [1,2,3] <% @followed_car_ids_and_paths.to_json %>
Run Code Online (Sandbox Code Playgroud)

如果我使用平面数组(未使用map翻倍),则不会发生该错误:

for car_id_and_path in <%= @followed_car_ids %>
Run Code Online (Sandbox Code Playgroud)

都不是这样的:

for car_id_and_path …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails view coffeescript ruby-on-rails-3.1

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

Coffeescript函数声明func: - >或func = - >?

我正在阅读spine.js文档,我想知道一些关于函数声明的内容.在我总是阅读的文档中

constructor: ->
  super
  ....
Run Code Online (Sandbox Code Playgroud)

但除此之外我总是读

constructor = ->
  super
  ....
Run Code Online (Sandbox Code Playgroud)

那么:和=等于函数声明?

coffeescript

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

如何更改咖啡脚本时如何观察和重新编译?

前段时间我曾经这样做过

coffee --bare --output . --watch --compile .
Run Code Online (Sandbox Code Playgroud)

这会监视.coffee当前目录中的文件,并在它们发生变化时重新编译它们.

现在,使用1.2.0的coffeescript,这似乎不再起作用了.我遇到了一个错误:

File not found: --watch.coffee
Run Code Online (Sandbox Code Playgroud)

和使用文档的coffee似乎很轻.

coffeescript

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

Node.js和coffeescript - 使用Mocha和Zombie测试应用程序

我正在尝试测试我已经开始使用Mocha和Zombie的node.js webapp.但有些事情我仍然不理解,并希望得到一些帮助.请注意我使用快递

假设我正在测试用户身份验证.显然有两个部分:1 - 用户界面2 - 行为,涉及控制器和模型所以,我决定将两个部分分开.对于UI,我决定使用僵尸.以下链接包含我为用户身份验证编写的UI测试:https://gist.github.com/7e45d6884ce2d32e933d 基本上,我的用户身份验证表单包含用户名和密码输入字段以及登录按钮.我对四种情况感兴趣:当至少有一个输入字段为空时以及两者都是由用户提供时.虽然现在四个测试通过,但我仍然不相信它们是正确的测试,或者它是否足够或做对了.你们(BDD专家)怎么想?谢谢何塞

bdd mocha.js node.js coffeescript zombie.js

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

是否可以在CoffeeScript中编写匿名平方函数?

官方网站显示以下功能

square = (x) -> x * x 
Run Code Online (Sandbox Code Playgroud)

然后你可以做类似的事情

square(4)
Run Code Online (Sandbox Code Playgroud)

是否可以使用匿名函数在一行中完成上述操作?我在考虑以下内容

(f = do (x) -> x * x) (4)
Run Code Online (Sandbox Code Playgroud)

我的代码没有编译,但我希望意图足够明确

coffeescript

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

JavaScript中的对象变量

我有以下代码:

WaitModel = ->
  timesDelayed = 0
  maxDelay = 10

  return this

WaitModel.prototype =
  wait: ->
    console.log 'waiting'

    console.log this.timesDelayed, this.maxDelay

    if this.timesDelayed >= this.maxDelay
      console.log 'running'
      this.timesDelayed = 0

    else
      this.timesDelayed++
      setTimeout this.wait, 1000

    return

new WaitModel().wait()
Run Code Online (Sandbox Code Playgroud)

我认为这应该产生如下输出:

waiting
0 10
waiting
1 10
...
Run Code Online (Sandbox Code Playgroud)

但它产生的输出如下:

waiting
0 10
waiting
undefined undefined
Run Code Online (Sandbox Code Playgroud)

我在哪里你重置this.timesDelayed和this.maxDelay?我误解了在这里制作物品的方法吗?

javascript settimeout coffeescript

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

返回Coffeescript中的Ajax请求结果

仍然围绕着CoffeeScript,看看它有什么能力.

我写了一个方法来进行ajax调用,我想要返回结果.

例如:

GetViewedItem: (foo) ->
    $.ajax '/Foo/Bar/',
    type: 'GET',
    data: { id: $(foo).data('fooId') }
    success: (data) ->
        data
Run Code Online (Sandbox Code Playgroud)

我想要返回数据.在CoffeeScript中有一个聪明的方法吗?或者我只需要声明一个变量?

谢谢

ajax coffeescript

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