2014-01-24 97 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