2014-01-24 51 views
0

我在玩typeahead,我无法得到一个简单的概念验证工作。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' 
} 
]); 

回答

2

默认情况下,它仅针对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' 
} 
]); 
+0

谢谢!任何想法为什么它不能部分匹配令牌?例如,如果我输入“ey”,它应该匹配“密钥”标记。 – webber

+0

匹配器不匹配令牌。它只与*键入的值相匹配。过去有一种方法可以定义一个自定义的匹配器,[但作者删除了这个特性](https://github.com/twitter/typeahead.js/issues/86),声称它是“不完整的”,并表示,一旦计划更加彻底,他计划将其重新添加到未来的版本中。 – Travesty3

+0

关于如何让Hogan在Typeahead 0.10+上工作的任何想法?我试过'Hogan.compile(...)',但它不起作用。如果您有解决方案,请参阅http://stackoverflow.com/questions/24727534/migrating-to-typeahead-0-10-with-hogan。谢谢! – isapir