for a in [1,2,3]
$('body').click (x) =>
alert a
Run Code Online (Sandbox Code Playgroud)
当我点击身体时,它会发出三次警报.我希望它提醒1,2和3.
像许多其他用户一样,我有'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传递给构造函数但没有成功.对我最明显的错误的任何帮助将不胜感激.
在部分.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) 我正在阅读spine.js文档,我想知道一些关于函数声明的内容.在我总是阅读的文档中
constructor: ->
super
....
Run Code Online (Sandbox Code Playgroud)
但除此之外我总是读
constructor = ->
super
....
Run Code Online (Sandbox Code Playgroud)
那么:和=等于函数声明?
前段时间我曾经这样做过
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似乎很轻.
我正在尝试测试我已经开始使用Mocha和Zombie的node.js webapp.但有些事情我仍然不理解,并希望得到一些帮助.请注意我使用快递
假设我正在测试用户身份验证.显然有两个部分:1 - 用户界面2 - 行为,涉及控制器和模型所以,我决定将两个部分分开.对于UI,我决定使用僵尸.以下链接包含我为用户身份验证编写的UI测试:https://gist.github.com/7e45d6884ce2d32e933d 基本上,我的用户身份验证表单包含用户名和密码输入字段以及登录按钮.我对四种情况感兴趣:当至少有一个输入字段为空时以及两者都是由用户提供时.虽然现在四个测试通过,但我仍然不相信它们是正确的测试,或者它是否足够或做对了.你们(BDD专家)怎么想?谢谢何塞
官方网站显示以下功能
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)
我的代码没有编译,但我希望意图足够明确
我有以下代码:
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?我误解了在这里制作物品的方法吗?
仍然围绕着CoffeeScript,看看它有什么能力.
我写了一个方法来进行ajax调用,我想要返回结果.
例如:
GetViewedItem: (foo) ->
$.ajax '/Foo/Bar/',
type: 'GET',
data: { id: $(foo).data('fooId') }
success: (data) ->
data
Run Code Online (Sandbox Code Playgroud)
我想要返回数据.在CoffeeScript中有一个聪明的方法吗?或者我只需要声明一个变量?
谢谢
coffeescript ×10
javascript ×3
ajax ×1
backbone.js ×1
bdd ×1
mocha.js ×1
node.js ×1
settimeout ×1
view ×1
zombie.js ×1