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