簡體   English   中英

修改諾言返回的數據?

[英]Modify the data returned by a promise?

我目前正在使用此插件進行標簽輸入'bootstrap-tagsinput'

我正在嘗試使用此插件提供的typeahead功能。 typeahead中的source屬性期望返回一個promise。但是我需要修改返回的數據。 我該怎么做呢?

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

嘗試

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/

請參見Bootstrap標簽提前輸入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM