0

我目前正在将此插件用于标签输入'bootstrap-tagsinput'

我正在尝试使用此插件提供的预输入功能。typeahead 中的源属性期望返回一个承诺。但我需要修改返回的数据。我该怎么做呢?

$('input').tagsinput({
  typeahead: {                  
    source: function(query) {
      return $.get('/tags.json').then(function(data){
          return _.pluck(data.tags,'keyword');
       });
    }
  }
});
4

1 回答 1

0

尝试

var list = ["Amsterdam", "Beijing", "Cairo"];
var citynames = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: {
        url: '/tags.json',
        filter: function (res) {
            // modify returned data here ,
            // e.g., `res` : `["abc"]`
            return $.map(res[0].split(""), function (val, i) {
                return {
                    name: val.toUpperCase() === list[i][0] ? list[i] : null
                };
            });
        }
    }
});
citynames.initialize();

$('input.bootstrap-tagsinput').tagsinput({
    typeaheadjs: {
        name: 'citynames',
        displayKey: 'name',
        valueKey: 'name',
        source: citynames.ttAdapter()
    }
});

jsfiddle http://jsfiddle.net/guest271314/dbfx1tso/

请参阅引导标记输入预输入

于 2015-01-20T07:45:47.233 回答