使用 algoliasearch 将 href 更改为半硬编码变量
change href to a semi hardcoded variable with algoliasearch
基本上我使用的是 AlgoliaSearch,希望能够让用户点击出现的搜索结果。由于 objectID 与我数据库中的 ID 匹配,我想我可以做一些事情,其中 a href= 可以是半硬编码的,并在 html 标记的末尾追加或添加 id。我试过获取 Javascript 的 getdocumentbyID,但这不起作用。
非常感谢对此的任何帮助,谢谢。
<script>
var index = client.initIndex('MultipleChoiceQuestion');
//initialize autocomplete on search input (ID selector must match)
autocomplete('#aa-search-input', { hint: false }, {
source: autocomplete.sources.hits(index, { hitsPerPage: 25 }),
//value to be displayed in input control after user's suggestion selection
displayKey: 'name',
//hash of templates used when rendering dataset
templates: {
//'suggestion' templating function used to render a single suggestion
suggestion: function(suggestion) {
var idx = suggestion.objectID;
var array = suggestion.tag_list.join('\n');
return '<div class="aa-highlight column is-2">' +
array + '</div><div class="aa-mcq column is-4"><a href="" id="search-mcq-id">' +
suggestion._highlightResult.question.value + '</a></div><div class="column is-4">' +
suggestion._highlightResult.answer_explanation.value + idx + '</div>';
document.getElementById('search-mcq-id').href = idx;
}
}
});
</script>
tl;dr - 我想将 link 变成半硬编码的 link,类似于 <A href="example.com/something/OBJECTID">
,但我尝试的方法不起作用.
如果您要对其进行硬编码,是否可以直接在您编写的 JS 模板中进行设置?似乎你在返回 JS 后尝试设置 href 使事情变得过于复杂(注意:在你 return
ed
之后你不能做任何事情
也许试试这个:
var idx = suggestion.objectID;
var array = suggestion.tag_list.join('\n');
return '<div class="aa-highlight column is-2">' +
array + '</div><div class="aa-mcq column is-4"><a href="/' + idx + '">' +
suggestion._highlightResult.question.value + '</a></div><div class="column is-4">' +
suggestion._highlightResult.answer_explanation.value + idx + '</div>';
基本上我使用的是 AlgoliaSearch,希望能够让用户点击出现的搜索结果。由于 objectID 与我数据库中的 ID 匹配,我想我可以做一些事情,其中 a href= 可以是半硬编码的,并在 html 标记的末尾追加或添加 id。我试过获取 Javascript 的 getdocumentbyID,但这不起作用。
非常感谢对此的任何帮助,谢谢。
<script>
var index = client.initIndex('MultipleChoiceQuestion');
//initialize autocomplete on search input (ID selector must match)
autocomplete('#aa-search-input', { hint: false }, {
source: autocomplete.sources.hits(index, { hitsPerPage: 25 }),
//value to be displayed in input control after user's suggestion selection
displayKey: 'name',
//hash of templates used when rendering dataset
templates: {
//'suggestion' templating function used to render a single suggestion
suggestion: function(suggestion) {
var idx = suggestion.objectID;
var array = suggestion.tag_list.join('\n');
return '<div class="aa-highlight column is-2">' +
array + '</div><div class="aa-mcq column is-4"><a href="" id="search-mcq-id">' +
suggestion._highlightResult.question.value + '</a></div><div class="column is-4">' +
suggestion._highlightResult.answer_explanation.value + idx + '</div>';
document.getElementById('search-mcq-id').href = idx;
}
}
});
</script>
tl;dr - 我想将 link 变成半硬编码的 link,类似于 <A href="example.com/something/OBJECTID">
,但我尝试的方法不起作用.
如果您要对其进行硬编码,是否可以直接在您编写的 JS 模板中进行设置?似乎你在返回 JS 后尝试设置 href 使事情变得过于复杂(注意:在你 return
ed
也许试试这个:
var idx = suggestion.objectID;
var array = suggestion.tag_list.join('\n');
return '<div class="aa-highlight column is-2">' +
array + '</div><div class="aa-mcq column is-4"><a href="/' + idx + '">' +
suggestion._highlightResult.question.value + '</a></div><div class="column is-4">' +
suggestion._highlightResult.answer_explanation.value + idx + '</div>';