Twitter Bootstrap:没有匹配的Typeahead功能

Jas*_*rga 6 twitter-bootstrap bootstrap-typeahead

我有一个"添加新事物"表单,将"用户"与"事物"相关联.

我正在使用Twitter Bootstrap Typeahead在我输入时提供用户列表.
它工作正常,如果用户在列表中,我可以选择它.

但如果用户不存在,我想要显示"创建新用户"链接.

所以基本上,我需要某种形式的"无匹配"功能.typeahead().我无法解决这个问题.

Bas*_*sen 4

扩展 typeahead 类:

var newusertext = 'New user';
var newuserlink = '/add/user/0';

$.fn.typeahead.Constructor.prototype.process = function (items) {
      var that = this

      items = $.grep(items, function (item) {
        return that.matcher(item)
      })

      items = this.sorter(items)

      if (!items.length) {
         return this.rendernonmatch().show()
      }

      return this.render(items.slice(0, this.options.items)).show()
    } 


$.fn.typeahead.Constructor.prototype.rendernonmatch = function () {
      var that = this
      var items = new Array();
      items.push(newusertext)
      items = $(items).map(function (i, item) {
        i = $(that.options.item).attr('data-value', item)
        i.find('a').html(that.highlighter(item))
        return i[0]
      })
      items.first().addClass('active')
      this.$menu.html(items)
      return this
    }

/* redirect to the registration page to add a new user */    
$.fn.typeahead.Constructor.prototype.updater = function (item) {
      if(item === newusertext){ window.location =  newuserlink; return}
      return item
    }      
Run Code Online (Sandbox Code Playgroud)

请参阅: http: //bootply.com/66630