spine.js中的keyup绑定和updateAttribute只抓取字符串的前几个字符

时间:2013-07-11 19:56:41

标签: javascript jquery coffeescript spine.js

我正在使用spine.js应用程序和django restful后端。对输入上的keyup事件的简单绑定会触发我的控制器中的一个函数,该函数尝试updateAttribute一个特定的模型记录。我在控制器中执行了一个log.console,似乎传递给updateAttribute的所有值都是正确的,并且记录确实已更新。但是,当我运行我的应用程序时,数据库表只更新输入字段中的第一个(或前几个)字符 - 而不是传递给文件的整个字符串。

知道为什么会这样吗?为什么updateAttribute只抓取字符串的第一个字符并更新记录,而不是整个事情?我今天试图修复这个bug一段时间而且非常沮丧。

以下是我的代码的相关摘录:

# below are my key bindings for keyup in my input fields and textareas 
events:
  'click a.social-tab' : 'selectTab'
  'keyup input' : 'updateDraggableText'
  'keyup textarea' : 'updateDraggableText'

# ...

# below are excerpts for my callback function
# below grabs the record to be updated
draggable = @parent.draggables()[index]

# update field attribute with value of txt
draggable.updateAttribute field, txt

1 个答案:

答案 0 :(得分:0)

经过一些实验后,似乎django后端在太多快速,频繁的连接(即按下每个键的一个请求)之后没有遵守更新的PUT请求。现在我通过排队使用setTimeout调用updateAttribute,将引用(return)存储在全局变量中,并在前一个执行之前请求另一个updateAttribute请求调用clearTimeout来修复前端。这样,只有在输入时才会对记录进行最后一次(相关)更新。