サイト アプリに Typeahead を実装しようとしていますが、これまでにいくつかの問題が見つかりました。最初のことは、サーバー側から先行入力に送信したレコードについてです。複数の行を取得しても、1 行しか表示されません。
私の環境は次のとおりです。
- Node.JS;
- Jade テンプレート エンジンで表現します。
- ブートストラップ
- モンゴDB。
サーバー側では、mongo が出力配列にフェッチするすべての行を追加します。
docs.forEach(function(e) {
output.push({
_id:e._id,
name:e.name,
date:e.dates[0].date.toString('dd/MM/yyyy'),
type: 'Show',
desc:S(e.description).stripTags().s
})
});
先行入力にも JSON として送信します。
$('#header-search').typeahead({
remote: '/layoutSearch?value=%QUERY',
template:
'<table style="width: 400px;"><tr><td><strong>{{name}}</strong></td><td style="float: right">{{date}} - <em>{{type}}</em></td></tr></table>' +
'<p style="line-height: 100%; font-size: 11px">{{desc}}</p>'
,
engine: Hogan,
onselect: function(obj) {
console.log('Selected: ' + obj);
}
});
私の「ヘッダー検索」コード(ジェイド):
input#header-search.typeahead(type='text', placeholder='Search...', data-provide='typeahead', data-items='4')
どこかで「data-items」を見つけて追加しましたが、何も変更されておらず、「data-provide」でも、名前フィールドが先行入力オプションで指定されています。私のクエリは問題ありません。既存のドキュメントを正確に返します。
どんな提案でも大歓迎です。