我正在尝试制作一个与 Twitter 在示例页面上显示的示例类似的示例,更具体地说,使用Twitter 的名为 Open Source Projects的模板的示例,我得到了部分工作,但它仅且始终仅显示 1 行结果,即使我将其设置为 10,我正在提取 Yahoo Finance 数据,结果是 JSON,并且在 Firebug 中有效,例如键入字母“a”将生成类似的 JSON 对象:[Object { symbol="A", name="Agilent Technologies Inc.", exch="NYQ", more...}, Object { symbol="^DJI", name="Dow Jones Industrial Average", exch="DJI", more...}, more objects...]
我的 JS 文件有这个 typeahead 设置
$('.symbols .typeahead').typeahead({
//name: 'symbols',
//remote: 'yahoo_autocomplete_ajax.php?action=autocjson&symbol=%QUERY',
limit: 3,
remote: {
url: 'yahoo_autocomplete_ajax.php?action=autocjson&symbol=%QUERY',
filter: function(parsedResponse) {
var dataset = [];
dataset = parsedResponse.data;
console.log(parsedResponse.data);
console.log(dataset); // debug the response here
return dataset;
}
},
//prefetch: 'symbols.json',
template: [
'<p class="symbols-exchange">{{exchDisp}}</p>',
'<p class="symbols-symbol">{{symbol}}</p>',
'<p class="symbols-name">{{name}}</p>'
].join(''),
engine: Hogan
});
parsedReponse.data
两者的console.logdataset
都显示了一个有效的数组。但最后,无论如何它仍然总是显示第一个结果,并且模板正在像它看起来的那样工作,现在在我的 HTML 代码中,我有来自 Twitter 的示例正在运行,它总是显示所有结果,但我的只有 1..所以为什么?如果需要,我也可以发布我的 HTML 代码,我只是尝试制作示例,所以 HTML 仍然很简单
当它显示 1 个结果时,我也遇到了第二个问题,即使我单击它来选择它,我的输入中也没有显示任何内容,尽管我想要符号值
这是我的 HTML 代码的一部分
<form>
<div class="example symbols">
<h2 class="example-name">Symbols</h2>
<p class="example-description">Defines a custom template and template engine for rendering suggestions</p>
<div class="demo">
<input class="typeahead" type="text" placeholder="symbol">
</div>
</div>
</form>