首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >algolia instantsearch.js searchBox小部件indexName错误

algolia instantsearch.js searchBox小部件indexName错误
EN

Stack Overflow用户
提问于 2015-12-29 07:05:38
回答 1查看 1.1K关注 0票数 0

我在使用Algolia instantsearch.js的searchBox小部件时遇到错误,错误消息为:

indexName无效

这个错误很奇怪,因为它不仅存在,而且还会显示结果!每次我在searchBox小部件中键入内容时,这个问题都会重复出现,并且不会根据我键入的内容过滤结果。我做了一个柱塞,看看有没有人能告诉我哪里做错了。

http://plnkr.co/edit/ihz5VMZ6HUDaYKTqwo9V?p=preview

代码语言:javascript
复制
<!DOCTYPE html>
<html>

<head>
<link rel="stylesheet" href="//cdn.jsdelivr.net/instantsearch.js/1/instantsearch.min.css">
<script src="//cdn.jsdelivr.net/instantsearch.js/1/instantsearch.min.js"></script>
</head>

<body>


      <input type="text" id="search-box" class="form-control">
<table class="table table-striped">
            <thead>
                <tr>
                    <th>Number</th>
                    <th>Name</th>
                    <th>Starts</th>
                    <th>Duration</th>
                    <th>Room</th>
                    <th><span class="glyphicon glyphicon-info-sign"></span></th>
                </tr>
            </thead>
            <tbody id="hits-container">
            </tbody>
</table>
<div id="pagination-container"></div>


<script>


var search = instantsearch({
  appId: '5V0BUFDX8J',
  apiKey: 'a25692c12853aea7a77c5a7125498512',
  indexName: 'C86FE050-6C48-11E5-84AA-BA5F164D0BA4_events',
  urlSync: true
});

search.addWidget(
instantsearch.widgets.searchBox({
  container: '#search-box',
  autofocus: true,
  placeholder: 'Search for events by keyword, description, or event number.'
})
);

search.addWidget(
    instantsearch.widgets.hits({
      container: '#hits-container',
      templates: {
        empty: 'No events found',
        item: '<tr><td><a href="{{view_uri}}">{{event_number}}</a></td><td><a href="{{view_uri}}" target="_new">{{name}}</a></td><td>{{startdaypart_name}}</td><td>{{duration_name}}</td><td>{{room_name}}</td><td><span class="glyphicon glyphicon-info-sign" data-toggle="tooltip" title="{{description}}"></span></td></tr>'
      },
    })
  );

  search.addWidget(
    instantsearch.widgets.pagination({
      container: '#pagination-container'
    })
  );

  search.start();

</script>

  </body>

</html>
EN

回答 1

Stack Overflow用户

发布于 2015-12-30 00:49:16

好了,原来这是Safari和instantsearch.js之间的一个bug。通过改变这一点:

代码语言:javascript
复制
var search = instantsearch({
  //...
  urlSync: true
});

要这样做:

代码语言:javascript
复制
var search = instantsearch({
  //...
  urlSync: { useHash: true }
});

错误就会消失。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34502082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档