【发布时间】:2013-10-10 02:42:53
【问题描述】:
我正在使用(好吧,想使用)typeahead.js 同时按 brand name 和 model name 搜索我的数据库,并显示按以下方式分组的可选结果品牌。我以为我可以使用一个简单的 Mustache 模板来完成此操作,但我没有任何运气。
我当前的预输入配置:
myEl.typeahead({
"name": "models-by-brand",
"valueKey": "id",
"remote": "/search/%QUERY",
"template": '{{#brands}}' +
'<h4>{{brand_name}}</h4>' +
'{{#models}}' +
'<p><a href="#" class="pick-model" data-modelid="{{id}}">{{name}}</a></p>' +
'{{/models}}' +
'{{/brands}}',
"engine": Hogan
});
从/search/super返回的JSON:
{
"brands": [
{
"brand_name": "Super Widgets",
"models": [
{
"id": 1,
"name": "Crazy Widget"
}
]
},
{
"brand_name": "Acme Widgets",
"models": [
{
"id": 2,
"name": "Extra Super Widget"
},
{
"id": 2,
"name": "Double Super Widget"
}
]
}
]
}
我希望预先输入的输出按品牌名称分组,因此可以按型号名称选择:
超级小部件
Crazy Widget
Acme 小部件
Extra Super Widget
Double Super Widget
但显然我不能以这种方式(使用嵌套块)使用带有预输入的 Hogan 模板。 Typeahead 只显示一个没有文本的结果。
我尝试使用带有遥控器的过滤器功能来格式化每个数据,但这只能让我得到所有数据的平面列表 - 我无法弄清楚如何对结果进行分组。
预输入模板可以实现我想要的吗?我只是错过了一些非常明显的东西吗?我可以控制远程 JSON 结果,因此如果需要,我可以更改该格式。感谢您的帮助。
【问题讨论】:
标签: mustache typeahead.js hogan.js