2013-04-05 55 views
0

我是新手。 我试图通过coffeesc进行轮询(railscast 229)和表单提交。coffeescript ajax setinterval不工作

jQuery -> 

MessagePoller = 
    poll: -> 
    setInterval MessagePoller.request("get_new": "yes"), 1000 
    true 
    request : (data) -> 
    $.ajax(
     type: "POST", 
     url: $("#messageform").attr("action") 
     data: data 
     dataType: "JSON" 
    ).success (json) -> 
     alert(json) 
     #act on result. 
    false 


$("#formsubmit").click -> 
    valuesToSubmit = $("textarea#message").val() 
    sendData = {"message" : valuesToSubmit} 
    $("ul#messages").append("<li>" + valuesToSubmit + "</li>") 
    $("textarea#message").val('') 
    MessagePoller.request(sendData) 
    false # prevents normal behaviour 

MessagePoller.poll() 

但@request只能使用一次。

你能帮我吗?

回答

2

替换:

poll: -> 
    setInterval MessagePoller.request("get_new": "yes"), 1000 

request : (data) -> 

有了:

@poll: -> 
    setInterval ->(MessagePoller.request("get_new": "yes")), 1000 

@request : (data) -> 

基本上是:

  • 你搞乱了实例和类方法之间

  • 你需要一个瓶盖re