这是我的JavaScript:

<script type="text/javascript">
    $(document).ready(function () {

        var people = new Bloodhound({
              datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.tokens); },
              queryTokenizer: Bloodhound.tokenizers.whitespace,
              local: [
                {
                    fullName: '',
                    "],
                },
                {
                    fullName: 'Marijus Merkevicius',
                    tokens: ["Marijus Merkevicius", "marijusm"],
                },
              ]
            });

        // initialize the bloodhound suggestion engine
        people.initialize();

        // instantiate the typeahead UI
        $('#${id }').typeahead(null, {
          displayKey: 'fullName',
          source: people.ttAdapter(),
        });

    });
</script>


当我使用return Bloodhound.tokenizers.whitespace(d.fullName);时,自动完成功能非常完美,但是当我返回d.tokens时,它根本不起作用。我在这里做错了什么?

最佳答案

令牌是一个数组,它需要一个字符串。您可以尝试d.tokens.join(' '),尽管不确定是否需要在d周围使用jQuery选择器($)。

09-19 18:35