使用 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 使事情变得过于复杂(注意:在你 returned

之后你不能做任何事情

也许试试这个:

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>';