Twitter类型的猎犬没有预取

时间:2014-10-30 00:21:20

标签: javascript twitter-bootstrap twitter-bootstrap-3 coffeescript typeahead.js

我有这个代码来设置twitter typeahead并且它根本不起作用。我验证了json是正确的格式并且具有正确的价值等。任何帮助将非常感激。目前,它只记录'Initializing autocomplete'行。永远不会调用过滤器中的日志,这似乎是由于某种原因引擎未初始化。当我输入时,我看到我定义的空模板。我也做了验证,确保coffeescript编译成正确的格式。

  initAutocomplete: ->
    console.log 'Initializing autocomplete'
    engine = new Bloodhound
      datumTokenizer: (d) ->
        Bloodhound.tokenizers.obj.whitespace(d.val)
      queryTokenizer: Bloodhound.tokenizers.whitespace
      limit: 10
      prefetch: 
        url:'../api/v3/tickets/autocomplete'
        filter: (list) ->
          console.log 'List: '
          console.log list
    engine.initialize()

    $('#tt-ticket.typeahead').typeahead null,
      name: 'tickets'
      displayKey: 'val'
      source: engine.ttAdapter()
      templates:
        empty: [
          '<div class="empty-message">',
          'Unable to find any matches',
          '</div>'
        ].join('\n'),
        suggestion: Handlebars.compile('<p><strong>{{key}}</strong> – {{value}}</p>')

json已经过验证,具有以下格式:

[{"key":"Id","val":1}, {"key":"Some other key", "val" : "some val"}]

1 个答案:

答案 0 :(得分:0)

我意识到我的愚蠢错误,我用来测试列表是否存在的过滤器回调是否返回undefined,因为它是console.log的返回值