javascript - 在 Twitter Typeahead.js 中获取 Remote 返回的数据集

标签 javascript tags typeahead.js

我创建了一个 Typeahead 自动完成框,并将其与 tagmanager.js 绑定(bind)在一起。一切正常,除了确保所选标签是预先输入建议列表中提供的选项之一之外。

self.tagApi = $("#itemTag").tagsManager({
  onlyTagList: true,  //This option is unimplemented in TagsManager 3.0
  maxTags: 1
});

self.tAhead = $("#itemTag").typeahead({
  name: 'items',
  limit: 15,
  remote: {
    url: '/api/get_items_for_typeahead/%QUERY'
  }
}).on('typeahead:selected', function(e, data, data_set_name) {

  //I want to check that it is a valid suggestion here

  $("#itemTag").tagsManager("pushTag", data.value);

});

有人知道如何获取返回的数据集吗?

最佳答案

过滤器添加到您的 Remote 。在其中,只需保存数据,然后在您的 selected 事件处理程序中使用即可。像这样:

$itemTag = $('#itemTag');

self.tagApi = $itemTag.tagsManager({
    onlyTagList: true,  // This option is unimplemented in TagsManager 3.0
    maxTags: 1,
});

var lastTypeaheadResponse = null;

self.tAhead = $itemTag.typeahead({
    name: 'items',
    limit: 15,
    remote: {
        url: '/api/get_items_for_typeahead/%QUERY',
        filter: function (response) {
            lastTypeaheadResponse = response;
            return response;
        },
    },
}).on('typeahead:selected', function (e, data, dataSetName) {
    // iterate over lastTypeaheadResponse and check what you want to check
    $itemTag.tagsManager('pushTag', data.value);
});

关于javascript - 在 Twitter Typeahead.js 中获取 Remote 返回的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715857/

相关文章:

javascript - 如何判断是在浏览器中运行还是在 NodeJS 中运行?

javascript - 如何将 'forward'(鼠标)事件发送到 Kineticjs 中较低 Zindex 上的节点/形状

javascript - 使用A-Frame `state`组件时如何重置为初始状态?

image - 如何使用 Powershell 为图像添加标签

javascript - 使用 Backbone 在预输入建议中包含按钮

jquery - typeahead.js 预取问题

javascript - jQuery 加载后不运行 "if"

python - BS4 find_all 在空间中带有标签

vim - 重新加载标签文件 Vim

javascript - 如何重置 typeahead.js 中使用的 Hogan.js 模板