【问题标题】:Typeahead autocomplete: usings templates预输入自动完成:使用模板
【发布时间】:2014-01-24 04:46:16
【问题描述】:

我正在使用 typeahead,但我无法获得一个简单的概念验证工作。

http://jsfiddle.net/LHeYy/

在下面的代码中,我基本上是在尝试使用 2 个字段构建自动完成功能。疯狂的是,我可以自动完成年份(值字段),但不能自动完成关键字段。有人知道为什么吗?

$('#inputBox').typeahead([
{
    name: 'best-picture-winners',
    local: [{key: 'some key', value:2014}, {key: 'some key 2', value:2015}, {key: 'some key4', value:2016}],
    template: '<p><strong>{{key}} {{value}}</strong></p>',
    engine: Hogan,
    valueKey: 'value'
}
]);

【问题讨论】:

    标签: jquery twitter-typeahead


    【解决方案1】:

    默认情况下,它仅针对 value 属性自动完成。如果您希望它检查其他值,请设置一个包含单个单词标记数组的 tokens 属性。

    https://github.com/twitter/typeahead.js#datum

    这是你的小提琴,更新:http://jsfiddle.net/LHeYy/1/

    $('#inputBox').typeahead([
    {
        name: 'best-picture-winners',
        local: [
            {key: 'some key', value: 2014, tokens: ['some', 'key']},
            {key: 'some key 2', value: 2015, tokens: ['some', 'key', '2']},
            {key: 'some key4', value: 2016, tokens: ['some', 'key4']}
        ],
        template: '<p><strong>{{key}} {{value}}</strong></p>',
        engine: Hogan,
        valueKey: 'value'
    }
    ]);
    

    【讨论】:

    • 谢谢!知道为什么它不部分匹配令牌吗?例如,如果我输入“ey”,它应该与“key”标记匹配。
    • 匹配器不会以这种方式匹配令牌。它只匹配您输入的值开头的标记。曾经有一种方法可以定义自定义匹配器,but the author removed that feature,声称它是“半生不熟的”,并表示他计划在更彻底的计划后将其添加到未来的版本中。
    • 关于如何让 Hogan 在 Typeahead 0.10+ 上工作的任何想法?我试过Hogan.compile(...),但它不起作用。如果您有解决方案,请参阅stackoverflow.com/questions/24727534/…。谢谢!
    • @Igal:抱歉,我根本没有更新我的 Typeahead 版本。不过,看起来您找到了解决方案:-)
    • @Travesty3 感谢您的回复。我更新了我的解决方案,因为旧版浏览器不支持 Function.prototype.bind()。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2016-01-14
    • 1970-01-01
    相关资源
    最近更新 更多