TypeAhead.js突出显示TypeError

Sco*_*w18 2 javascript jquery typeahead coffeescript typeahead.js

我正在尝试获取一个输入类型的选定值,每次都会出现此错误:Uncaught TypeError: Cannot assign to read only property 'highlight' of.它永远不会告诉我它指的是什么对象,它来自TypeAhead.min.js文件,所以我不能确切地说我的代码是什么行引起它.这是我用来设置和捕获输入值的代码:

$(".articles.new").ready ->
  engine = new Bloodhound {
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  local: autocomplete_items
}

engine.initialize()

$('#auto_complete').typeahead { hint: true, highlight: true, minLength: 1 },  
  { name: "names", displayKey: "name", source: engine.ttAdapter()}

$('#auto_complete').on 'typeahead:selected', (event, selection) ->
  alert selection.name
  $('#auto_complete').typeahead 'setQuery', ''
  event.stopPropagation()
  return
return
Run Code Online (Sandbox Code Playgroud)

对于上下文:auto_complete项是来自我的控制器的具有name属性的对象数组.我在Ruby on Rails 4.1.4上工作.

我该怎么做才能解决这个错误?是什么造成的?

Sco*_*w18 11

经过多次试验,我想出了这个.错误来自这条线$('#auto_complete').typeahead 'setQuery', ''.在尝试使用其他操作后,我试图清除输入框中的值.我不太确定技术细节,但是使用$('#auto_complete').typeahead 'val', ''而不是在没有错误的情况下实现了期望的效果.我想这解释了为什么对象是空白的,它指的是一个空查询并尝试用它来执行操作.

如果有人可以给我一个更详细的解释,我会有兴趣听到两个API调用之间的差异,但如果没有,我很乐意继续前进.