Chr*_*ova 9 typeahead handlebars.js typeahead.js
是否有可能在所有建议结束时添加自定义行?我想添加一个"显示更多建议",这是一个链接到另一个页面.
$(function(){
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url : '/json/temp/countries.json',
filter: function(list) {
return $.map(list, function(country) { return { name: country }; });
}
},
});
countries.initialize();
$('.component-search-button .ui-input input').typeahead(null,
{
highlight: true,
name: 'countries',
displayKey: 'name',
source: countries.ttAdapter(),
templates: {
empty: [
'<div class="empty-message">',
'<i>Unfortunatelly we coud not find items that match the current query. Please try again.</i>',
'</div>'
].join('\n'),
suggestion: Handlebars.compile('<p><strong>{{name}}</strong></p>')
}
}
);
});
Run Code Online (Sandbox Code Playgroud)
它遵循Git的基本示例.我看到错误消息在"模板"中的"空"处触发,它有一个选项,它可以触发列表完成或类似的东西.
非常感谢你的帮助.
好吧,我找到了自己的答案。来自Typeahead API:
\n\n\n\n\n可以使用以下选项配置数据集。
\n\nsource \xe2\x80\x93 建议的支持数据源。预期是具有签名 (query, cb) 的函数。预计该函数将计算查询的建议集(即 JavaScript 对象数组),然后使用该集调用 cb。cb 可以同步或异步调用。此处可以使用 Bloodhound 建议引擎,要了解如何使用,请参阅 Bloodhound 集成。必需的。
\n\nname \xe2\x80\x93 数据集的名称。这将被附加到 tt-dataset- 以形成包含 DOM 元素的类名。只能包含下划线、破折号、字母 (az) 和数字。默认为随机数。
\n\ndisplayKey \xe2\x80\x93 对于给定的建议对象,确定其字符串表示形式。选择建议后设置输入控件的值时将使用此选项。可以是键字符串,也可以是将建议对象转换为字符串的函数。默认为值。
\n\ntemplates \xe2\x80\x93 渲染数据集时使用的模板的哈希值。请注意,预编译模板是一个将 JavaScript 对象作为其第一个参数并返回 HTML 字符串的函数。
\n\n空 \xe2\x80\x93 当给定查询有 0 个建议可用时呈现。可以是 HTML 字符串或预编译模板。如果它是预编译模板,则传入的上下文将包含查询。
\n\nfooter\xe2\x80\x93 在数据集的底部呈现。可以是 HTML 字符串或预编译模板。如果它是预编译模板,则传入的上下文将包含 query 和 isEmpty。
\n\nheader \xe2\x80\x93 在数据集的顶部呈现。可以是 HTML 字符串或预编译模板。如果它是预编译模板,则传入的上下文将包含 query 和 isEmpty。
\n\nsuggest \xe2\x80\x93 用于呈现单个建议。如果设置,这必须是预编译模板。关联的建议对象将充当上下文。默认为 ap 标签中包含的 displayKey 的值,即
{{价值}}
。\n
所以我们必须做的是:
\n\ntemplates: {\n empty: [\n \'<div class="empty-message">\',\n \'<i>Unfortunatelly we coud not find items that match the current query. Please try again.</i>\',\n \'</div>\'\n ].join(\'\\n\'),\n footer : [\n \'<div class="more-results">\',\n \'<a href="#">More Results</a>\',\n \'<div>\'\n ].join(\'\\n\'),\n suggestion: Handlebars.compile(\'<p>{{name}}</p>\')\n}\nRun Code Online (Sandbox Code Playgroud)\n\n希望这对某人有帮助:)
\n| 归档时间: |
|
| 查看次数: |
3509 次 |
| 最近记录: |