我有一个基于主干的视图,用户可以在其中在文本字段中输入一个单词并提交表单。有两个与视图相关的事件 -submit
和keyup
.
class NewConceptView extends Backbone.View
el: '#new-concept-cont'
template: JST['concepts/new']
events:
'submit form': 'handleSubmit'
'keyup #concept_title' : 'getPossibilities'
当用户输入时,我需要访问我的服务器并请求一些关于用户输入内容的数据(称为possibilities
)(就像一个自动完成插件)。
getPossibilities: (e) ->
currentText = @titleInput.val()
if currentText.length > 0
params = { text: currentText }
$.getJSON(url, params, @buildConceptAttrs)
然后当用户提交表单时,我需要从服务器获取最后的可能性并将它们添加到集合中。
handleSubmit: (e) ->
e.preventDefault()
@titleInput.val('')
@collection.create(@conceptAttrs)
当我在文本框中快速输入然后点击提交时,就会出现问题。基本上,表单在所有对服务器的可能性请求都返回之前被提交。
有没有办法让我排队提交事件,以便在所有可能性请求都返回之前它们不会发生?